作者pi2324 (PTT)
看板Python
標題[問題] TMP 暫存檔
時間Thu Apr 18 22:22:07 2019
自學PY(越級打怪),只有一點點的C語言基礎
目前讀到一段程式碼關於TMP暫存檔,會return 檔名
每段拆開,都可以大概理解,但是合在一起的話要怎麼運用@@
希望可以運用做到生成一個暫存檔,且利用下列程式碼,回傳檔名
要怎麼辦到阿~~~
謝謝提點
程式碼如下:
import abc
import socket
import io
import os
import os.path
import platform
import time
----------------------------------------------------------------------
class TMP:
default_name = 'TROJAN_TEMP'
default_tempdir = {
'windows': 'C:\\TEMP\\'+ default_name
}
def __init__(self, dirname=None, *args, **kwargs):
self.system = platform.system()
dirname =dirname if dirname else self.default_tempdir.get(self.system)
self.set_tempdir(dirname)
print(self.system)
-----------------------------------------------------------------------
1. 如果dir 預設路徑 = None dirname = 'C:\\TEMP\\'+ 'TROJAN_TEMP'
2. self.set_tempdir(dirname) <---這段的意思是 dirname 會自動成為 set_tempdir
的參數嗎
-----------------------------------------------------------------------
def set_tempdir(self, name):
if not name:
raise ValueError('Invalid directory name')
self.tempdir = os.path.abspath(name)
if os.path.exists(self.tempdir) and not os.path.isdir(self.tempdir):
raise FileExistsError('\'%s\' file exists' % self.tempdir)
這段就不太懂了,大概是比對路徑是否有相同吧?
------------------------------------------------------------------------
def get_tempdir(self, subdir=None):
if subdir:
return os.path.join(self.tempdir, subdir)
return self.tempdir
子目錄
-------------------------------------------------------------------------
def get_tempname(self, prefix='',suffix='',subdir=None):
filename = os.path.join(self.get_tempdir(subdir), prefix +
str(time.time())+ suffix)
return filename
回傳 temp 檔名
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.116.17
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1555597329.A.61E.html
推 lemon651: 不是自動 set是他調自己函數改了instance variable 04/19 13:44
→ lemon651: set_dirname就是 先判斷有沒有input沒有的話raise error 04/19 13:45
→ lemon651: 有的話判斷是不是路徑存在並且是資料夾 是的話就set dir 04/19 13:45
→ lemon651: name 04/19 13:45
推 lemon651: get_tempname 就是用時間來產生會變動的暫存檔名 整理 04/19 13:49
→ lemon651: 使用方式就是 tmp = TMP() tmp.set_dirname(xxx) 決定 04/19 13:49
→ lemon651: 暫存檔主目錄位置 tmp.get_name(參數隨便你定) 就可以 04/19 13:49
→ lemon651: 拿到暫存檔名 04/19 13:49