使用Python寫入內(nèi)容到制定文件
寫入文件
利用文件對象提供的 write() 方法,可以向文件中寫入內(nèi)容。 語法格式如下: file.write(string) 其中,fle 為打開的文件對象: string 為要寫入的字符串。
f=open('word.txt', 'a+') # 以追加的方式打開文件 # 將信息寫入文件 f.write("有時候你覺得特別難,也許因為有更大的收獲') f.close() # 關(guān)閉文件
有的時候,需要以指定的編碼格式(如UTF-8)將內(nèi)容寫入文件。 如將書名“Python 實效編程百例寫入到book.txt 后保存編碼格式為“utf-8”, 實現(xiàn)代碼如下:
with open('book.txt','w', encoding='utf-8') as file: file.write('Python 實效編程百例'+'\n') # 寫入內(nèi)容后換行就要加\n
使用with 語句處理文件
打開文件后,要及時將其關(guān)閉。如果忘記關(guān)閉可能會出現(xiàn)意想不到的問題。 另外,如果在打開文件時拋出了異常,那么將導(dǎo)致文件不能被及時關(guān)閉。 無論是否拋出異常,with 語句執(zhí)行完畢后關(guān)閉已經(jīng)打開的文件。 with 語句的語法格式如下:
with expression as target: with-body
參數(shù)說明: expression:用于指定一個表達式,這里可以是打開文件的 open()函數(shù) target:用于指定一個變量,并且將expression 的結(jié)果保存到該變量中 with-body: 用于指定 with 語句體,其中可以是執(zhí)行 with 語句后相關(guān)的一些操作語句。 如果不想執(zhí)行任何語句,可以直接使用 pass 語句代替。
print("\n","="*10,"Python經(jīng)典應(yīng)用","="*10) with open('message.txt', 'w') as file: # 創(chuàng)建或打開保存Python經(jīng)典應(yīng)用信息的文件 pass print("\n 即將顯示..... \n")
規(guī)避常見的錯誤操作
1.規(guī)避文件不存在的陷阱
在默認的情況下,使用 open()函數(shù)打開一個不存在的文件,會拋出異常錯誤。 可以使用 os.path模塊提供的 exists()函數(shù)判斷文件是否存在。 例如讀取文件 book.txt,如果文件存在,讀取文件并輸出內(nèi)容; 如果文件不存在,則新建 book.txt 文件。實現(xiàn)代碼如下:
import os if os.path.exists('book.txt'): with open('book.txt', 'r') as file: for line in file: print(line) else: file =open('book.txt') file.close()
2.規(guī)避讀取不同編碼格式文件時的陷阱
由于文件保存格式的不同,在讀取文件時如果格式不正確,將會出現(xiàn)亂碼問題或拋出異常。 1.在打開文件時指定文件的格式 例如讀取文件格式為“gbk”的文件(“maintxt”),在打開文件時設(shè)置編碼格式為“encoding=‘GBK’”
try: with open('book.txt', 'r',encoding='GBK') as file: for line in file: print(line) except Exception: with open('book.txt', 'r', encoding='UTF-8') as file: for line in file: print(line,2)
3.以二進制打開文件,然后對讀取的內(nèi)容進行編碼
用 Python 讀取文件經(jīng)常會出現(xiàn)字符編碼錯誤,用二進制方式打開文件,就不會出現(xiàn)錯誤了。但需要在讀取文件時進行編碼。 首先使用 isimstance()函數(shù)判斷讀取的內(nèi)容是否為 str 類型,如果是,則直接讀取文件內(nèi)容.如果不是,則使用異常處理程序嘗試使用“utf-8”方式解碼,否則采用“gbk”方式解碼。實現(xiàn)代碼如下:
with open('book.txt', 'rb') as file: lines = file.read() if isinstance(lines, str): print(new) else: try: new = lines.decode("utf-8") print(new) except: try: new = lines.decode("gbk") print(new) except: pass
4.強制以某種模式讀取文件,忽略編碼錯誤
有時我們需要以某種格式讀取指定文件,而忽略編碼錯誤帶來的亂碼問題。例如以二進制方式讀取文件“maintxt”中的內(nèi)容,然后以“gbk”編碼強制讀取該文件,實現(xiàn)代碼如下:
with open('book.txt', 'rb') as file: article = file.read() new = article.decode('gbk',errors='ignore') print(new)
到此這篇關(guān)于使用Python寫入內(nèi)容到制定文件的文章就介紹到這了,更多相關(guān)Python寫入文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Django教程之實現(xiàn)天氣應(yīng)用程序
Django提供了一個基于Python Web框架的Web框架,允許快速開發(fā)和干凈,務(wù)實的設(shè)計。在本教程中,我們將學(xué)習(xí)如何創(chuàng)建一個使用Django作為后端的天氣應(yīng)用程序,感興趣的可以嘗試一下2022-10-10如何設(shè)置PyCharm中的Python代碼模版(推薦)
這篇文章主要介紹了如何設(shè)置PyCharm中的Python代碼模版,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11python 代碼實現(xiàn)k-means聚類分析的思路(不使用現(xiàn)成聚類庫)
這篇文章主要介紹了python 代碼實現(xiàn)k-means聚類分析(不使用現(xiàn)成聚類庫),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06代碼講解Python對Windows服務(wù)進行監(jiān)控
本篇文章給大家分享了通過Python對Windows服務(wù)進行監(jiān)控的實例代碼,對此有興趣的朋友可以學(xué)習(xí)參考下。2018-02-02Python中通過@classmethod 實現(xiàn)多態(tài)的示例
這篇文章主要介紹了Python中通過@classmethod 實現(xiàn)多態(tài),python中通常使用對象創(chuàng)建多態(tài)模式,python還支持類創(chuàng)建多態(tài)模式,下面通過一個例子展示它如何實現(xiàn)多態(tài),需要的朋友可以參考下2022-11-11