資源描述:
《python讀寫文件方法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、1open使用open打開文件后一定要記得調(diào)用文件對象的close()方法。比如可以用tryfinally語句來確保最后能關(guān)閉文件。file_object=open(&1.open使用open打開文件后一定要記得調(diào)用文件對象的close()方法。比如可以用try/finally語句來確保最后能關(guān)閉文件。file_object=open('thefile.txt')try:all_the_text=file_object.read()finally:file_object.close()注:不能把open語句放在try塊里,因為當(dāng)打開文件出
2、現(xiàn)異常時,文件對象file_object無法執(zhí)行close()方法。2.讀文件讀文本文件input=open('data','r')#第二個參數(shù)默認(rèn)為rinput=open('data')讀二進(jìn)制文件input=open('data','rb')讀取所有內(nèi)容file_object=open('thefile.txt')try:all_the_text=file_object.read()finally:file_object.close()讀固定字節(jié)file_object=open('abinfile','rb')try:whileTru
3、e:chunk=file_object.read(100)ifnotchunk:breakdo_something_with(chunk)finally:file_object.close()讀每行l(wèi)ist_of_all_the_lines=file_object.readlines()如果文件是文本文件,還可以直接遍歷文件對象獲取每行:forlineinfile_object:processline3.寫文件寫文本文件output=open('data','w')寫二進(jìn)制文件output=open('data','wb')追加寫文件ou
4、tput=open('data','w+')寫數(shù)據(jù)file_object=open('thefile.txt','w')file_object.write(all_the_text)file_object.close()寫入多行file_object.writelines(list_of_text_strings)注意,調(diào)用writelines寫入多行在性能上會比使用write一次性寫入要高。在處理日志文件的時候,常常會遇到這樣的情況:日志文件巨大,不可能一次性把整個文件讀入到內(nèi)存中進(jìn)行處理,例如需要在一臺物理內(nèi)存為2GB的機器上處理一個
5、2GB的日志文件,我們可能希望每次只處理其中200MB的內(nèi)容。在Python中,內(nèi)置的File對象直接提供了一個readlines(sizehint)函數(shù)來完成這樣的事情。以下面的代碼為例:file=open('test.log','r')sizehint=209715200#200Mposition=0lines=file.readlines(sizehint)whilenotfile.tell()-position<0:position=file.tell()lines=file.readlines(sizehint)每次調(diào)用read
6、lines(sizehint)函數(shù),會返回大約200MB的數(shù)據(jù),而且所返回的必然都是完整的行數(shù)據(jù),大多數(shù)情況下,返回的數(shù)據(jù)的字節(jié)數(shù)會稍微比sizehint指定的值大一點(除最后一次調(diào)用readlines(sizehint)函數(shù)的時候)。通常情況下,Python會自動將用戶指定的sizehint的值調(diào)整成內(nèi)部緩存大小的整數(shù)倍。file在python是一個特殊的類型,它用于在python程序中對外部的文件進(jìn)行操作。在python中一切都是對象,file也不例外,file有file的方法和屬性。下面先來看如何創(chuàng)建一個file對象:file(na
7、me[,mode[,buffering]])file()函數(shù)用于創(chuàng)建一個file對象,它有一個別名叫open(),可能更形象一些,它們是內(nèi)置函數(shù)。來看看它的參數(shù)。它參數(shù)都是以字符串的形式傳遞的。name是文件的名字。mode是打開的模式,可選的值為rwaU,分別代表讀(默認(rèn))寫添加支持各種換行符的模式。用w或a模式打開文件的話,如果文件不存在,那么就自動創(chuàng)建。此外,用w模式打開一個已經(jīng)存在的文件時,原有文件的內(nèi)容會被清空,因為一開始文件的操作的標(biāo)記是在文件的開頭的,這時候進(jìn)行寫操作,無疑會把原有的內(nèi)容給抹掉。由于歷史的原因,換行符在不同的
8、系統(tǒng)中有不同模式,比如在unix中是一個,而在windows中是‘r’,用U模式打開文件,就是支持所有的換行模式,也就說‘r’'''r'都可表示換行,會有一個tuple用