tempfile.TemporaryFile
如何你的應用程序需要一個臨時文件來存儲數據,但不需要同其他程序共享,那么用TemporaryFile函數創建臨時文件是最好的選擇。其他的應用程序是無法找到或打開這個文件的,因為它并沒有引用文件系統表。用這個函數創建的臨時文件,關閉后會自動刪除。
實例一:
這個例子說明了普通創建文件的方法與TemporaryFile()的不同之處,注意:用TemporaryFile()創建的文件沒有文件名
輸出:
Building a file name yourself:
temp: <open file '/tmp/guess_my_name.14932.txt', mode 'w+b' at 0x1004481e0>
temp.name: /tmp/guess_my_name.14932.txt
TemporaryFile:
temp: <open file '<fdopen>', mode 'w+b' at 0x1004486f0>
temp.name: <fdopen>
默認情況下使用w+b權限創建文件,在任何平臺中都是如此,并且程序可以對它進行讀寫。這個例子說明了普通創建文件的方法與TemporaryFile()的不同之處,注意:用TemporaryFile()創建的文件沒有文件名
Building a file name yourself:
temp: <open file '/tmp/guess_my_name.14932.txt', mode 'w+b' at 0x1004481e0>
temp.name: /tmp/guess_my_name.14932.txt
TemporaryFile:
temp: <open file '<fdopen>', mode 'w+b' at 0x1004486f0>
temp.name: <fdopen>
默認情況下使用w+b權限創建文件,在任何平臺中都是如此,并且程序可以對它進行讀寫。
實例二:
寫入侯,需要使用seek(),為了以后讀取數據。
輸出:
$ python tempfile_TemporaryFile_binary.py
Some data
實例三:
first
second
tempfile.NamedTemporaryFile
如果臨時文件會被多個進程或主機使用,那么建立一個有名字的文件是最簡單的方法。這就是NamedTemporaryFile要做的,可以使用name屬性訪問它的名字
盡管文件帶有名字,但它仍然會在close后自動刪除
輸出:
temp: <open file '<fdopen>', mode 'w+b' at 0x1004481e0>
temp.name: /var/folders/9R/9R1t+tR02Raxzk+F71Q50U+++Uw/-Tmp-/tmp0zHZvX
Exists after close: False
tempfile.mkdtemp
創建臨時目錄,這個不多說,直接看例子:
/var/folders/9R/9R1t+tR02Raxzk+F71Q50U+++Uw/-Tmp-/tmpB1CR8M
Predicting Names
用3個參數來控制文件名,名字產生公式:dir + prefix + random + suffix
實例:
輸出:
temp: <open file '<fdopen>', mode 'w+b' at 0x1004481e0>
temp.name: /tmp/prefix_UyCzjc_suffix
tempfile.mkstemp([suffix=''[, prefix='tmp'[, dir=None[, text=False]]]])
mkstemp方法用于創建一個臨時文件。該方法僅僅用于創建臨時文件,調用tempfile.mkstemp函數后,返回包含兩個元素的元組,第一個元素指示操作該臨時文件的安全級別,第二個元素指示該臨時文件的路徑。參數suffix和prefix分別表示臨時文件名稱的后綴和前綴;dir指定了臨時文件所在的目錄,如果沒有指定目錄,將根據系統環境變量TMPDIR, TEMP或者TMP的設置來保存臨時文件;參數text指定了是否以文本的形式來操作文件,默認為False,表示以二進制的形式來操作文件。
tempfile.mktemp([suffix=''[, prefix='tmp'[, dir=None]]])
mktemp用于返回一個臨時文件的路徑,但并不創建該臨時文件。
tempfile.tempdir
該屬性用于指定創建的臨時文件(夾)所在的默認文件夾。如果沒有設置該屬性或者將其設為None,Python將返回以下環境變量TMPDIR, TEMP, TEMP指定的目錄,如果沒有定義這些環境變量,臨時文件將被創建在當前工作目錄。
tempfile.gettempdir()
gettempdir()則用于返回保存臨時文件的文件夾路徑。
新聞熱點
疑難解答
圖片精選