python open函数_精选2个小例子,带你快速入门Python文件处理
閱讀本文大概需要7分鐘講完了函數和模塊,我們來講一講文件的使用,python對數據的處理分兩種一種是本地文件的處理,另外一種是通過網絡數據處理(也就是爬蟲相關的).而本地的數據處理,主要是通過文件的讀和寫完成~~我們先想一想平時對文件處理一般遇到哪些問題:
這個兩個是非常常見的問題,如何處理呢,python十幾行簡單的代碼就能搞定,那我們快來學習一下吧:Python的文件處理簡單來說分以下幾點:
1.文件的讀寫和關閉python中要想獲得文件里的內容,先要打開文件,然后才能讀和寫.而且寫完之后一定要記得關閉.python中對文件的打開是通過open函數來獲得一個句柄,
(也許有同學問為啥要關閉文件啊,因為若不正常關閉,緩沖在內存中的數據就不能真正寫入到文件中,可能造成數據丟失)1)文件的打開file_obj=open(filename,mode='r',buffering=-1)#一共有3個參數,第一個是強制參數,后面兩個是可選的#mode可以是讀,寫或者追加,一般默認是讀文件#buffering主要是設置緩存區,一般我們都是用-1表示用系統的默認緩沖區,若寫100,表示緩沖區為1002)文件的讀取 f=open(r'somefile.txt') f.readline()#表示讀文件的一行 f.readlines()#表示把文件從頭到尾都讀出來,并保存為一個列表3)文件的寫入 f=open(r'somefile.txt','w') f.write()#表示把字符串寫入 f.writelines()#表示把一個列表寫入4)文件的關閉使用文件應該牢記關閉#重要的事情說3遍我已經說了3遍了普通的關閉方法:f=open(r'somefile.txt')...xxx#do somethingf.close()懶人專用方法with open(r'somefile.txt') as f: f.readlines()強烈推薦用with方法,這是pythonic里面非常推薦的一種方法,因為它會自動幫你關閉文件。你只要專注對文件的處理就可以了,是不是非常貼心~~2.文件的模式上面只列舉了python的讀和寫,那其他的模式怎么辦呢~~不要急,python只需要改變一下open里面的模式參數就可以.python中有以下幾種模式,詳細見下表
3.文件的讀取位置有的時候我們只想讀文件的一部分的內容,或者我們需要從文件的某個位置讀數據,應該怎么操作呢,用seek()函數file_obj.seek(offset,whence=0)#seek主要是在文件中移動指針,從whence(0表示文件頭,1表示當前位置,2表示文件尾)偏移offset個字節====123.txt===1234567891)從頭讀3個字符f=open('123.txt')f.seek(0,0)print f.read(3)f.close()>>1232)從尾讀3個字符f=open('123.txt')f.seek(-3,2)#2表示從文件指針指向尾巴,-3表示向前移動3個字節print f.read(3)#讀3個字節f.close()>>789下面我們通過2個小例子講一下假如你你有個叫Test目錄,它的結構如下:里面有2個文件,一個txt文件(里面有4行內容),一個新建的demo.py|----abc1109.txt---GoogleMicrisoftBaiDuFacebook|----demo.py------例子1:把abc1109.txt里面的內容讀出來,寫到一個新的文件,按照下面的格式:|-----Output------1: Google2: Micrisoft3: BaiDu4: Facebook先寫一個粗糙的解法
接著我們把上面的代碼整理,重構一下
上面的代碼重構了一下是不是看的清晰一點,而且用了with的用法簡潔很多,是不是很爽,重構其實是非常重要的技巧.其實這個例子有一點小問題(就是沒有對文件加異常保護,因為異常后面再講,所以暫時先不寫).例子2:把Test目錄下面的2個txt文件改名字:原來的:|----abc1109.txt---------|----new_abc1109.txt---|----demo.py--------------通過引入os模塊,把讀出來的文件名用字符串的內置函數translate處理一下,就ok了,看源碼如下:
好了Python的文件快速入門就講到這里啦,希望能給初學者一些啟發,若有什么不懂的,也可以留言跟我探討交流.
需要更多2020最新Python資料 私信我奧。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python open函数_精选2个小例子,带你快速入门Python文件处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 静态内部类----Java
- 下一篇: python获取文件路径下指定的类型的文