国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python tempfile模塊學習筆記(臨時文件)

2019-11-25 18:24:45
字體:
來源:轉載
供稿:網友

tempfile.TemporaryFile

如何你的應用程序需要一個臨時文件來存儲數據,但不需要同其他程序共享,那么用TemporaryFile函數創建臨時文件是最好的選擇。其他的應用程序是無法找到或打開這個文件的,因為它并沒有引用文件系統表。用這個函數創建的臨時文件,關閉后會自動刪除。

實例一:

復制代碼 代碼如下:

import os
import tempfile

print 'Building a file name yourself:'
filename = '/tmp/guess_my_name.%s.txt' % os.getpid()
temp = open(filename, 'w+b')
try:
    print 'temp:', temp
    print 'temp.name:', temp.name
finally:
    temp.close()
    os.remove(filename)     # Clean up the temporary file yourself

print
print 'TemporaryFile:'
temp = tempfile.TemporaryFile()
try:
    print 'temp:', temp
    print 'temp.name:', temp.name
finally:
    temp.close()  # Automatically cleans up the file

這個例子說明了普通創建文件的方法與TemporaryFile()的不同之處,注意:用TemporaryFile()創建的文件沒有文件名

輸出:

復制代碼 代碼如下:

$ python tempfile_TemporaryFile.py


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()創建的文件沒有文件名


復制代碼 代碼如下:

$ python tempfile_TemporaryFile.py

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權限創建文件,在任何平臺中都是如此,并且程序可以對它進行讀寫。

實例二:

復制代碼 代碼如下:

import os
import tempfile

temp = tempfile.TemporaryFile()
try:
    temp.write('Some data')
    temp.seek(0)

    print temp.read()
finally:
    temp.close()

寫入侯,需要使用seek(),為了以后讀取數據。

輸出:

復制代碼 代碼如下:

$ python tempfile_TemporaryFile_binary.py

Some data


如果你想讓文件以text模式運行,那么在創建的時候要修改mode為'w+t'。

實例三:

復制代碼 代碼如下:

import tempfile

f = tempfile.TemporaryFile(mode='w+t')
try:
    f.writelines(['first/n', 'second/n'])
    f.seek(0)

    for line in f:
        print line.rstrip()
finally:
    f.close()

輸出:
復制代碼 代碼如下:

$ python tempfile_TemporaryFile_text.py

first

second

tempfile.NamedTemporaryFile

如果臨時文件會被多個進程或主機使用,那么建立一個有名字的文件是最簡單的方法。這就是NamedTemporaryFile要做的,可以使用name屬性訪問它的名字

復制代碼 代碼如下:

import os
import tempfile

temp = tempfile.NamedTemporaryFile()
try:
    print 'temp:', temp
    print 'temp.name:', temp.name
finally:
    # Automatically cleans up the file
    temp.close()
print 'Exists after close:', os.path.exists(temp.name)

盡管文件帶有名字,但它仍然會在close后自動刪除

輸出:

復制代碼 代碼如下:

$ python tempfile_NamedTemporaryFile.py

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

創建臨時目錄,這個不多說,直接看例子:

復制代碼 代碼如下:

import os
import tempfile

directory_name = tempfile.mkdtemp()
print directory_name
# Clean up the directory yourself
os.removedirs(directory_name)

輸出
復制代碼 代碼如下:

$ python tempfile_mkdtemp.py

/var/folders/9R/9R1t+tR02Raxzk+F71Q50U+++Uw/-Tmp-/tmpB1CR8M



注意:目錄需要手動刪除。

Predicting Names

用3個參數來控制文件名,名字產生公式:dir + prefix + random + suffix

實例:

復制代碼 代碼如下:

import tempfile

temp = tempfile.NamedTemporaryFile(suffix='_suffix',
                                   prefix='prefix_',
                                   dir='/tmp',
                                   )
try:
    print 'temp:', temp
    print 'temp.name:', temp.name
finally:
    temp.close()

輸出:

復制代碼 代碼如下:

$ python tempfile_NamedTemporaryFile_args.py


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()則用于返回保存臨時文件的文件夾路徑。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尼勒克县| 兴国县| 日土县| 筠连县| 海原县| 灵宝市| 大理市| 治县。| 布尔津县| 隆安县| 休宁县| 宾川县| 册亨县| 宜宾市| 隆子县| 綦江县| 鹿邑县| 大城县| 玉龙| 新郑市| 富川| 台州市| 甘泉县| 辽阳县| 合山市| 景谷| 漠河县| 方城县| 泰和县| 隆子县| 韶山市| 綦江县| 建平县| 鄂温| 镇巴县| 晋江市| 比如县| 南京市| 开平市| 靖远县| 桂阳县|