建立臨時檔案及資料夾

2021-10-08 20:43:53 字數 2878 閱讀 4034

建立臨時資料夾

在臨時檔案進行資料讀寫,需要了解python讀寫檔案以及 tempfile 模組

1、臨時檔案的讀取以游標為準

from tempfile import temporaryfile

f = temporaryfile(

'w+'

)# w+ 表示寫入及讀取檔案

f.write(

'hello world!'

)data1 = f.readlines(

)print

(data1)

# 輸出結果

此時游標位於 'hello world! 』 的感嘆號後,所以臨時檔案的讀取的時候沒有讀取到內容

from tempfile import temporaryfile

f = temporaryfile(

'w+'

)f.write(

'hello world!\n'

)f.write(

'hello bobo!'

)f.seek(0)

# .seek(0)表示回到檔案開頭位置,若沒有該語句,

# 則游標位於 hello bobo!感嘆號後,讀取時讀取內容為空

data = f.readlines(

)print

(data)

f.close(

)# 程式執行完後會自動刪掉臨時檔案

# 執行結果:['hello world!\n', 'hello bobo!']

2、游標後存在內容,會進行文字覆蓋
from tempfile import temporaryfile

f = temporaryfile(

'w+'

)f.write(

'hello world!\n'

)data1 = f.readlines(

)print

(data1)

f.seek(0)

f.write(

'hello bobo!'

)f.seek(0)

data2 = f.readlines(

)print

(data2)

輸出結果:

['hello bobo!!\n'

]可以發現,第一次寫完'hello world!\n'後,游標沒有回到檔案開頭,

進行第一次讀取時,游標位於 \n後,所以讀取的為空;

游標回到檔案開頭後,再進行第二次寫操作時,,所以進行了文字覆蓋

from tempfile import temporaryfile

f = temporaryfile(

'w+'

)f.write(

'hello world!\n'

)f.seek(0)

data1 = f.readlines(

)print

(data1)

f.write(

'hello bobo!'

)f.seek(0)

data2 = f.readlines(

)print

(data2)

輸出結果:

['hello world!\n'][

'hello world!\n'

,'hello bobo!'

]可以發現,第一次寫完'hello world!\n'後,游標回到了檔案開頭,

進行第一次讀取後,游標位於 \n後;

然後再進行第二次寫操作時,游標位於是 \n後,所以沒有進行文字覆蓋

3、臨時檔案銷毀後不能再進行二次讀寫
from tempfile import temporaryfile

with temporaryfile(

'w+'

)as f:

f.write(

'hello world!\n'

) f.seek(0)

data1 = f.readlines(

)print

(data1)

f.write(

'hello bobo!'

)f.seek(0)

data2 = f.readlines(

)print

(data2)

輸出結果:

['hello world!\n'

]traceback (most recent call last)

: file "/media/bobo/648cebcd8ceb9836/python/自動化辦公/temporaryfile模組/temporarydirectorydemo2.py"

, line 17,in

f.write(

'hello bobo!'

)valueerror: i/o operation on closed file

.可以發現,with語句結束後,臨時檔案已銷毀,所以再次讀寫會報錯

import time

from tempfile import temporarydirectory

with temporarydirectory(

)as tmp_folder:

print

(f'臨時資料夾已建立:'

) time.sleep(60)

print

('此語句列印後臨時資料夾將銷毀'

)print

('臨時資料夾已銷毀'

)# 程式結束後會自動刪掉該資料夾

# 輸出結果 臨時資料夾已建立:/tmp/tmpnc3coasa

可根據輸出的路徑去 /tmp資料夾下查詢,可以發現,60s後,程式執行結束,臨時資料夾也被銷毀

python 建立臨時檔案和資料夾

需要在程式執行時建立乙個臨時檔案或目錄,並希望使用完之後可以自動銷毀掉。tempfile 模組中有很多的函式可以完成這任務。為了建立乙個匿名的臨時檔案,可以使用tempfile.temporaryfile from tempfile import temporaryfile with tempora...

P3 建立臨時檔案及資料夾

p3.建立臨時檔案及資料夾.md 寫入和讀取檔案 讀取檔案 open readlines close 例 f open file.txt r encoding utf 8 text f.readlines print text f.close 例2 推薦,不用寫colse with open fil...

python中臨時檔案及資料夾使用

三 臨時檔案 這裡介紹python中臨時檔案及資料夾使用。使用的是tempfile包 安裝 pip install tempfile 參考位址是 2.1 獲取臨時資料夾 獲取臨時資料夾 tmpdir tempfile.gettempdir print tmpdir tmp2.2 生成臨時資料夾 方式...