|
這是菜鳥學python的第27篇原創(chuàng)文章 閱讀本文大概需要7分鐘 講完了函數(shù)和模塊,我們來講一講文件的使用,python對數(shù)據(jù)的處理分兩種一種是本地文件的處理,另外一種是通過網(wǎng)絡(luò)數(shù)據(jù)處理(也就是爬蟲相關(guān)的).而本地的數(shù)據(jù)處理,主要是通過文件的讀和寫完成~~ 我們先想一想平時對文件處理一般遇到哪些問題:
這個兩個是非常常見的問題,如何處理呢,python十幾行簡單的代碼就能搞定,那我們快來學習一下吧: Python的文件處理簡單來說分以下幾點:
1.文件的讀寫和關(guān)閉 python中要想獲得文件里的內(nèi)容,先要打開文件,然后才能讀和寫.而且寫完之后一定要記得關(guān)閉.python中對文件的打開是通過open函數(shù)來獲得一個句柄,
(也許有同學問為啥要關(guān)閉文件啊,因為若不正常關(guān)閉,緩沖在內(nèi)存中的數(shù)據(jù)就不能真正寫入到文件中,可能造成數(shù)據(jù)丟失) 1)文件的打開 file_obj=open(filename,mode='r',buffering=-1) #一共有3個參數(shù),第一個是強制參數(shù),后面兩個是可選的 #mode可以是讀,寫或者追加,一般默認是讀文件 #buffering主要是設(shè)置緩存區(qū),一般我們都是用-1表示用系統(tǒng)的默認緩沖區(qū),若寫100,表示緩沖區(qū)為100 2)文件的讀取 f=open(r'somefile.txt') f.readline()#表示讀文件的一行 f.readlines()#表示把文件從頭到尾都讀出來,并保存為一個列表 3)文件的寫入 f=open(r'somefile.txt','w') f.write()#表示把字符串寫入 f.writelines()#表示把一個列表寫入 4)文件的關(guān)閉 使用文件應(yīng)該牢記關(guān)閉#重要的事情說3遍我已經(jīng)說了3遍了 普通的關(guān)閉方法: f=open(r'somefile.txt') ...xxx#do something f.close() 懶人專用方法 with open(r'somefile.txt') as f: f.readlines() 強烈推薦用with方法,這是pythonic里面非常推薦的一種方法,因為它會自動幫你關(guān)閉文件。你只要專注對文件的處理就可以了,是不是非常貼心~~ 2.文件的模式 上面只列舉了python的讀和寫,那其他的模式怎么辦呢~~不要急,python只需要改變一下open里面的模式參數(shù)就可以. python中有以下幾種模式,詳細見下表 3.文件的讀取位置 有的時候我們只想讀文件的一部分的內(nèi)容,或者我們需要從文件的某個位置讀數(shù)據(jù),應(yīng)該怎么操作呢,用seek()函數(shù) file_obj.seek(offset,whence=0) #seek主要是在文件中移動指針,從whence(0表示文件頭,1表示當前位置,2表示文件尾)偏移offset個字節(jié) ====123.txt=== 123456789 1)從頭讀3個字符 f=open('123.txt') f.seek(0,0) print f.read(3) f.close() >>123 2)從尾讀3個字符 f=open('123.txt') f.seek(-3,2)#2表示從文件指針指向尾巴,-3表示向前移動3個字節(jié) print f.read(3)#讀3個字節(jié) f.close() >>789 下面我們通過2個小例子講一下 假如你你有個叫Test目錄,它的結(jié)構(gòu)如下: 里面有2個文件,一個txt文件(里面有4行內(nèi)容),一個新建的demo.py |----abc1109.txt--- Micrisoft BaiDu |----demo.py------ 例子1:把abc1109.txt里面的內(nèi)容讀出來,寫到一個新的文件,按照下面的格式: |-----Output------ 1: Google 2: Micrisoft 3: BaiDu 4: Facebook 先寫一個粗糙的解法 接著我們把上面的代碼整理,重構(gòu)一下 上面的代碼重構(gòu)了一下是不是看的清晰一點,而且用了with的用法簡潔很多,是不是很爽,重構(gòu)其實是非常重要的技巧.其實這個例子有一點小問題(就是沒有對文件加異常保護,因為異常后面再講,所以暫時先不寫). 例子2:把Test目錄下面的2個txt文件改名字: 原來的: |----abc1109.txt--------- |----new_abc1109.txt--- |----demo.py-------------- 通過引入os模塊,把讀出來的文件名用字符串的內(nèi)置函數(shù)translate處理一下,就ok了,看源碼如下:
|----abc.txt--------- |----new_abc.txt--- |----demo.py------- 好了Python的文件快速入門就講到這里啦,希望能給初學者一些啟發(fā),若有什么不懂的,也可以留言跟我探討交流. 最后說一下,原創(chuàng)真的不易,希望大家能夠給點支持,歡迎轉(zhuǎn)發(fā),留言,也是對我的一點鼓勵和動力. |
|
|
來自: Four兄 > 《Python辦公》