1 from sys import argv
2
3 script,filename=argv
4
5 line1=input('type someother code:'+'\n'+'>')
6 line2=input('please type some code:'+'\n'+'>')
7 line3=input('please append some code:'+'\n'+'>')
8 t1=open(filename,'w+')
9 t1.write(line1+'\n')
10 t1.write(line2+'\n')
11 #此行我第二次加入一句t1.seek(0),程序就一切如預(yù)期了,不解。。。
12 t0=open(filename,'a+')
13 t0.write(line3)
14 t0.seek(0)
15 print('The Final result:\n%s'%t0.read())
16
17 t1.close
18 t0.close
type someother code:
.>>>this line 1
please type some code:
.>>>this is line 2
please append some code:
.>>>this is append line
The Final result:
this is append line
testing.txt 寫入文件內(nèi)容:
this is line 1
this is line 2
很奇怪~ 最后一行this is append line沒有寫入文件,而print(t0.read())卻只打印出最后一行?
t1.seek(0)后,一切如我預(yù)期了(print正常打印出testing.txt的全部?jī)?nèi)容了,testing.txt也被正常寫入了三條input(str))t1.seek(0) 作用是將指針移回文件開頭,我在第14行寫它是因?yàn)榻酉聛砦乙猵rint全部文件內(nèi)容,而write后,指針指向了文件尾部,此時(shí)read只能讀出空。 但12行我在文件末尾用'a+'模式追加一句str,文件指針指向哪應(yīng)該都無所謂?。?a+'模式不是強(qiáng)行在文件尾部添加str嘛?為什么出錯(cuò)?? 而我在12行前加一句t1.seek(0)就OK了~ 實(shí)在不解。
其實(shí)最好是寫完關(guān)掉,再打開追加, 或者至少flush一下緩沖區(qū),猜測(cè)是因?yàn)椴煌膐pen, 會(huì)建立不同的緩沖區(qū), 這樣對(duì)同一個(gè)文件操作,會(huì)對(duì)文件內(nèi)容意外覆蓋
from sys import argv
script,filename=argv
line1=input('type someother code:'+'\n'+'>')
line2=input('please type some code:'+'\n'+'>')
line3=input('please append some code:'+'\n'+'>')
t1=open(filename,'w+')
t1.write(line1+'\n')
t1.write(line2+'\n')
t1.flush()
t1.close()
t0=open(filename,'a+')
t0.write(line3)
t0.flush()
t0.seek(0)
print('The Final result:\n%s'%t0.read())
t0.close()我試驗(yàn)了一下,大概明白了為什么。你也可以在代碼中用f.tell()來監(jiān)測(cè)指針的位置。
按照我的理解,你的t1以“w+”的模式打開了一個(gè)文件filename,t1的指針在文件的開頭,然后進(jìn)行了一系列write操作。但是要注意,此時(shí)數(shù)據(jù)只是寫入了一個(gè)緩存區(qū),并沒有真正寫入filename。
接著以“a+”的模式打開了一個(gè)t0,它的指針在文件的結(jié)尾(最初的filename的結(jié)尾),所以對(duì)t0進(jìn)行write操作也是從t0的指針位置開始的。這么一說不知你明白了沒有
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。