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