天天看點

Python初學者練習:向檔案寫入資料方法詳解

作者:資訊科技雲課堂

Python 廣泛用于資料分析,帶有一些内置函數可以将資料寫入檔案。可以打開一個檔案并對其執行不同的操作,例如将新内容寫入其中或修改檔案以在檔案末尾附加内容。

Python初學者練習:向檔案寫入資料方法詳解

每當我們需要将文本寫入檔案時,我們都必須以相應的通路模式打開檔案。我們基本上可以打開檔案進行讀取,寫入或追加。要将内容寫入檔案,我們必須以寫入模式打開檔案。

通路模式 描述
w 打開檔案進行寫入。檔案句柄将放置在檔案的開頭。如果檔案不存在,則會建立一個新檔案。
w+ 打開檔案進行讀取和寫入。檔案句柄将放置在檔案的開頭。如果檔案不存在,則會建立一個新檔案。
wb 打開二進制檔案進行寫入。檔案句柄将放置在檔案的開頭。如果檔案不存在,則會建立一個新檔案。
a 打開檔案進行寫入。檔案句柄将放置在檔案的末尾。檔案存在,新内容将添加到現有内容之後。否則将建立一個新檔案。
a+ 打開檔案進行寫入和讀取。檔案句柄放置在檔案的末尾。檔案存在,新内容将添加到現有内容之後。否則将建立一個新檔案。

檔案寫入方法:

方法 描述
write() 用于将字元串寫入檔案。隻接受字元串作為參數。
writelines() 用于将字元串清單寫入檔案。接受字元串和清單作為參數。

在 Python 中将文本資料寫入檔案

text="這是需要寫入新内容!"
fp=open("abc.txt",'w')
fp.write(text)
fp.close()

#打開檔案讀取寫入的内容
fp=open("abc.txt",'r')
print(fp.read())
fp.close()           

在上面的示例中,如果abc.txt不存在,會使用該名稱建立一個新檔案并寫入内容。如果abc.txt存在,原有内容被新内容覆寫。

在 Python 中将清單資料寫入檔案

text=['website\n', 'https://www.zbxx.net\n', 'wordpress']
fp=open("abc.txt","w")
fp.writelines(text)
fp.close()

fp=open("abc.txt","r")
print(fp.read())
fp.close()           

在上面的示例中,我們将清單清單中的多個字元串寫入檔案。在字元串的尾部添加了“\n”,寫入換行符。

在 Python 中使用with将資料寫入檔案

with 語句可以友善的進行異常處理。也確定了檔案在寫入完畢後自動關閉,釋放與檔案綁定的所有資源。

text=['website\n', 'https://www.zbxx.net\n', 'wordpress']
with open("abc.txt","w") as fp:
    fp.writelines(text)

with open("abc.txt","r") as fp:
    print(fp.read())           

在 Python 中将新内容追加到現有檔案

将通路模式設定為"a"後,我們可以在現有檔案的末尾添加新文本。

text1=['website\n', 'https://www.zbxx.net\n', 'wordpress']
text2="Welcome\n"
with open("abc.txt","a") as fp:
    fp.write(text2)
    fp.writelines(text1)

with open("abc.txt","r") as fp:
    print(fp.read())           

在 Python 中同時對檔案寫入和讀取

在上面的示例中,我們打開檔案寫入内容後,需要再次打開檔案讀取内容,一個檔案打開兩次。

現在我們嘗試在不再次打開檔案的情況下,同時對檔案寫入和讀取。

text1=['website\n', 'https://www.zbxx.net\n', 'wordpress']
text2="Welcome\n"
with open("abc.txt","w+") as fp:
    fp.write(text2)
    fp.writelines(text1)
    print(fp.read())           

上面的示例中,我們隻打開一次檔案,進行寫入讀取。但是,程式并沒有讀取到資料。因為,檔案寫入後,檔案句柄處于檔案末尾,讀取資料時從檔案句柄開始,不會讀取到内容。

我們可以使用seek()函數來解決這個問題,seek(0)可以将檔案句柄移至檔案開頭。

text1=['website\n', 'https://www.zbxx.net\n', 'wordpress']
text2="Welcome\n"
with open("abc.txt","w+") as fp:
    fp.write(text2)
    fp.writelines(text1)
    fp.seek(0)
    print(fp.read())           

「文章創作不易,如果您喜歡這篇文章,請關注、點贊并分享給朋友。如有意見和建議,請在評論中回報!」