2.2.3.1Python-實例---文件讀寫

總目錄:http://www.reibang.com/p/e406a9bc93a9

Python - 子目錄:http://www.reibang.com/p/50b432cb9460

新建txt文件“測試1.txt”间护,“測試2.txt”存放于pycharm項目根目錄创夜,測試1.txt文件內(nèi)存放有《望廬山瀑布》正文。

三種基本的操作模式? r(只讀)? w(只寫) a(追加)

流程:1 創(chuàng)建文件對象 2 調(diào)用文件方法進(jìn)行操作 3 關(guān)閉文件


r(只讀)

a=open('測試1.txt','r')? ? ? ? ? #打開文件矿瘦,選擇打開方式為只讀

data1=? a.read()? ? ? ? ? ? ? ? ? #讀取文件內(nèi)容,讀取方法為全部讀取底哥。

print(data1)? ? ? ? ? ? ? ? ? ? #打印讀取內(nèi)容谴分。

日照香爐生紫煙,

遙看瀑布掛前川讼育。

飛流直下三千尺,

疑是銀河落九天粮宛。

data2=? a.read(5)? ? ? ? ? ? ? ? #讀取文件內(nèi)容的前五個字符窥淆。

print(data2)? ? ? ? ? ? ? ? ? ? #打印讀取內(nèi)容。

日照香爐生

a.close? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉文件


w(只寫)

a=open('測試2.txt','w')? ? ? ? ? ? ? ? ? ? ? ? #打開文件巍杈,選擇打開方式為只寫

a.write("日照香爐生紫煙忧饭,")? ? ? ? ? ? ? ? #寫入文件,文件內(nèi)原內(nèi)容清空筷畦。

data1=a.read()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

print(data1)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#打印讀取內(nèi)容词裤,查看是否寫入。

日照香爐生紫煙鳖宾,

a.close? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉文件


a(追加)

a=open('測試2.txt','a')? ? ? ? ? ? ? ? ? ? ? ? #打開文件吼砂,選擇打開方式為追加

a.write("\n遙看瀑布掛前川。\n")? ? ? ? ?#寫入文件鼎文,追加到源文件尾部渔肩。

data1=a.read()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

print(data1)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#打印讀取內(nèi)容,查看是否寫入拇惋。

日照香爐生紫煙周偎,

遙看瀑布掛前川。

a.close? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉文件


其他方法

fileno()?

文件描述符方法(文件操作句柄的標(biāo)識符撑帖,不為零但唯一)在某一時間段內(nèi)只能有一個操作進(jìn)程使用蓉坎。

a=open('測試2.txt','w')? ? ? ? ? ? ? ? ? ? ? ? #打開文件,選擇打開方式為只寫

print(a.fileno())? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#查看此文件文件描述符

3? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#此文件在此電腦上此次操作的標(biāo)識符為3

a.close? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉文件


readline()

讀取一行(讀取到第一個/n換行符處)

a=open('測試1.txt','r')? ? ? ? ? #打開文件胡嘿,選擇打開方式為只讀

data1=? a.readline()? ? ? ? ? ? #讀取文件內(nèi)容蛉艾,讀取第一行

print(data1)? ? ? ? ? ? ? ? ? ? #打印讀取內(nèi)容。

日照香爐生紫煙,

data2=? a.readline()? ? ? ?

#接著上一個readline后再操作一個則會讀取第二行(因為第一個readline操作后標(biāo)識到第二行處)

print(data2)? ? ? ? ? ? ? ? ? ? #打印讀取內(nèi)容勿侯。

遙看瀑布掛前川拓瞪。

a.close? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉文件?


redlines()

讀取所有行

a=open('測試1.txt','r')? ? ? ? ? #打開文件,選擇打開方式為只讀

data1=? a.readlines()? ? ? ? ? ? #讀取文件內(nèi)容罐监,讀取第一行

print(data1)? ? ? ? ? ? ? ? ? ? #打印讀取內(nèi)容吴藻。

日照香爐生紫煙,

遙看瀑布掛前川弓柱。

飛流直下三千尺,

疑是銀河落九天侧但。

a.close? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉文件


指定在一行尾部添加字符

迭代器方法

f=open('測試1.txt','r',encoding='UTF-8')

number=0

for i in f:

? ? number+=1

? ? if number == 3:

? ? ? ? i = ''.join([i.strip(), 'iiiii'])

? ? print(i.strip())

f.close()

日照香爐生紫煙矢空,

遙看瀑布掛前川。

飛流直下三千尺禀横,iiiii

疑是銀河落九天屁药。


tell()

返回光標(biāo)當(dāng)前位置

a=open('測試1.txt','r')? ? ? ? ? #打開文件,選擇打開方式為只讀

print(a.tell())? ? ? ? ? ? ? ? ? ?#打印當(dāng)前光標(biāo)位置

0

data1=? a.read(2)? ? ? ?#讀取兩個字符(中文一個字符兩個位置柏锄,英文一個酿箭。)

print(a.tell())? ? ? ? ? ? ? ? ? ?#打印當(dāng)前光標(biāo)位置

6

a.close? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉文件


seek()??

指定光標(biāo)的位置

a=open('測試1.txt','r')? ? ? ? ? #打開文件,選擇打開方式為只讀

print(a.read(2))? ? ? ? ? ? ? ?#讀取兩個字符

日照

print(a.read(2))? ? ? ? ? ? ? ?#再讀取兩個字符

香爐

a.seek(0)? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#把光標(biāo)位置設(shè)置在0

print(a,read(2))? ? ? ? ? ? ? ? ?#再讀取兩個字符查看光標(biāo)是否設(shè)置成功

日照

a.close? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉文件


truncate()

指定長度的話趾娃,就從文件的開頭開始截斷指定長度缭嫡,其余內(nèi)容刪除;不指定長度的話抬闷,就從文件開頭開始截斷到當(dāng)前位置妇蛀,其余內(nèi)容刪除。

a=open('測試1.txt','r+')? ? ? ?#打開文件笤成,選擇打開方式為讀寫

a.truncate(6)? ? ? ? ? ? ? ? ? ? ? ? ? ? #截取6個字符

a.close? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉文件

這時打開文件測試1.txt,發(fā)現(xiàn)只有日照香三個字评架。


flush

刷新緩沖區(qū),即將緩沖區(qū)中的數(shù)據(jù)立刻寫入文件炕泳,同時清空緩沖區(qū)纵诞,不需要是被動的等待輸出緩沖區(qū)寫入。

#進(jìn)度條實例

import sys,time

for i in range(30):

? ? sys.stdout.write("*")

? ? sys.stdout.flush()

? ? time.sleep(0.1)

#print的flush

import sys,time

for i in range(30):

? ? print('*',end='',flush=True)

? ? time.sleep(0.1)


終極問題 如何在磁盤修改文件

常規(guī)思路培遵,由于磁盤存儲機(jī)制不能完成

f=open('小重山.txt','r+',encoding='utf8')

number=0

for line in f:

? ? number+=1

? ? if number==3:

? ? ? ? f.write('alex')


只能采取重新創(chuàng)建一個文件的思路

f_read=open('小重山.txt','r',)

f_write = open('小重山2.txt','w',encoding='utf8')

number=0

? ? for line in f_read:

? ? ? ? number+=1

? ? ? ? if number==6:

? ? ? ? ? ? line=''.join([line.strip(),'alex\n'])

? ? ? ? ? ? # line='hello 岳飛\n'

? ? f_write.write(line)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浙芙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子荤懂,更是在濱河造成了極大的恐慌茁裙,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件节仿,死亡現(xiàn)場離奇詭異晤锥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門矾瘾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來女轿,“玉大人,你說我怎么就攤上這事壕翩◎燃#” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵放妈,是天一觀的道長北救。 經(jīng)常有香客問我,道長芜抒,這世上最難降的妖魔是什么珍策? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮宅倒,結(jié)果婚禮上攘宙,老公的妹妹穿的比我還像新娘。我一直安慰自己拐迁,他們只是感情好蹭劈,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著线召,像睡著了一般铺韧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灶搜,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天祟蚀,我揣著相機(jī)與錄音,去河邊找鬼割卖。 笑死前酿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鹏溯。 我是一名探鬼主播罢维,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼丙挽!你這毒婦竟也來了肺孵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤颜阐,失蹤者是張志新(化名)和其女友劉穎平窘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凳怨,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡瑰艘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年是鬼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片紫新。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡均蜜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芒率,到底是詐尸還是另有隱情囤耳,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布偶芍,位于F島的核電站充择,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏匪蟀。R本人自食惡果不足惜聪铺,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望萄窜。 院中可真熱鬧,春花似錦撒桨、人聲如沸查刻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽穗泵。三九已至,卻和暖如春谜疤,著一層夾襖步出監(jiān)牢的瞬間佃延,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工夷磕, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留履肃,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓坐桩,卻偏偏與公主長得像尺棋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绵跷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容