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