小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

精選2個小例子,帶你快速入門Python文件處理

 Four兄 2019-08-24

這是菜鳥學python的第27篇原創(chuàng)文章

閱讀本文大概需要7分鐘

講完了函數(shù)和模塊,我們來講一講文件的使用,python對數(shù)據(jù)的處理分兩種一種是本地文件的處理,另外一種是通過網(wǎng)絡(luò)數(shù)據(jù)處理(也就是爬蟲相關(guān)).而本地的數(shù)據(jù)處理,主要是通過文件的讀和寫完成~~

我們先想一想平時對文件處理一般遇到哪些問題:

  • 如何讀取一個文件的內(nèi)容,然后處理,最后寫到一個新的文件

  • 如何更改一個文件夾下的某一些文件名

這個兩個是非常常見的問題,如何處理呢,python十幾行簡單的代碼就能搞定,那我們快來學習一下吧:

Python的文件處理簡單來說分以下幾點:

  • 文件的讀寫和關(guān)閉

  • 文件的模式

  • 文件的讀取位置

1.文件的讀寫和關(guān)閉

python中要想獲得文件里的內(nèi)容,先要打開文件,然后才能讀和寫.而且寫完之后一定要記得關(guān)閉.python中對文件的打開是通過open函數(shù)來獲得一個句柄,

  • 獲得的句柄f,就可以用f.read()進行讀入

  • 獲得的句柄f之后,就可以f.write()進行寫入

  • 當你文件處理完畢之后,要關(guān)閉文件.

(也許有同學問為啥要關(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---

Google

Micrisoft

BaiDu

Facebook

|----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ā),留言,也是對我的一點鼓勵和動力.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多