系列3python之經(jīng)典教程講義11文件和流_第1頁(yè)
系列3python之經(jīng)典教程講義11文件和流_第2頁(yè)
系列3python之經(jīng)典教程講義11文件和流_第3頁(yè)
系列3python之經(jīng)典教程講義11文件和流_第4頁(yè)
系列3python之經(jīng)典教程講義11文件和流_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

open(name[,open(name[,mode[, >>>>>>f=Traceback(mostrecentcalllast):FileTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>IOError:[Errno2]Nosuchfileordirectory: 'r+能在打開一個(gè)文本 可以用來(lái)一個(gè)二進(jìn)制文件。如果使用二進(jìn)制模式來(lái)(寫入)文件的話,與使用文本模式不會(huì)有很大區(qū)別。仍然能讀一定

轉(zhuǎn)換

0 0

對(duì)象是支持一些類方法的對(duì)象,最重要的是支持read方法或者方法,或者兩者

第10sys模塊的部分曾經(jīng)提到過3種流。它們實(shí)際上是文件(或者是類文件對(duì)象):大 >>>>>>f=open("somefile.txt",>>> o,>>>f.write("World!")>>> >>>>>>f=open("somefile.txt",>>>f.read(4) 'o,World!'首先指定了我要的字符數(shù) ,然后(通過不提供要的字符數(shù)的方式)了剩下的文 下面這個(gè)例子(假設(shè)是GUNbash)。$$catsomefile.txt|pythonsomescript.py| MacOSX中,是通過Terminal程序,可以使用s cat )catpython 。應(yīng)該是從標(biāo)準(zhǔn)輸入python | |cat 中數(shù)據(jù)( cat 的一個(gè)簡(jiǎn)單的( 內(nèi)容如代碼11-2所示。##11-1統(tǒng)計(jì)`sys.stdin`#importtext=sys.stdin.read()words=text.split()wordcount=len(words)print"Wordcount:",wordcount#代碼 11-2包含示例文本的文件Yourmotherwasahamsterandyourfathersmelledof下面 Wordcount:Wordcount:ll

seek(offset[,seek(offset[, >>>>>>f=open(r"c:\text\somefile.txt",>>>>>>>>>>>>o,>>>f=>>>>>> o, >>>f=>>>>>>>>>>>>>>> >>>

"o, "o, readlines相反:傳給它一個(gè)字符串的列表(實(shí)際上任何序列或者可迭代的

##Openyourfilehere#Writedatatoyourfile 語(yǔ)句withwithopen("somefile.txt")assomefile: fromfrom import

文件可以被用作上下文管理器。它們的 假 ##代 11-3一個(gè)簡(jiǎn)單的文本文etothisThereisnothinghereexceptThisstupid >>>>>>f=>>>f.read(7) >>>f.read(4)'to>>>然后 >>>>>>f=>>>printetothisThereisnothinghereexceptThisstupid>>>接著 >>>>>>f=>>>foriinprintstr(i)+":"+etothis1:Thereisnothinghereexcept2:Thisstupidhaiku>>>以 >>>>>>import>>> etothisfile\n','Thereisnothinghereexcept\n','Thisstupid>>>f>>>f=open(r"C:\text\somefile.txt",>>>f.write("this\nis>>>##代 11-4修改了的文本文thisisno最后 >>>>>>f=>>>lines=>>>>>>lines[1]="isn't>>>f=open(r"C:\text\somefile.txt",>>> >>>##代 11-5再次修改的文本文(

defdefprint"Processing:",

##代 11-6用read方法對(duì)每個(gè)字符進(jìn)行循f=open(filename)char=f.read(1)whilechar:char=f.read(1)

charf.read(1被重復(fù)地使用,代碼重復(fù)通常被認(rèn)為是一件壞事。(懶 ##代 11-7用不同的方式寫循f=open(filename)whileTrue:char=f.read()ifnotchar:break語(yǔ)句不應(yīng)該頻繁地使用(因?yàn)檫@樣會(huì)讓代碼很難懂);盡管如此,代 ##代碼 11-8在while循環(huán)中使用readlinef=open(filename)whileline=f.readline()ifnotline:如果文是很大么可以不帶參的 方法一整個(gè)把整個(gè)做一個(gè)字來(lái),者用 方法(文讀入一符串列在列表個(gè)字符串就行)。碼和碼展示這文件時(shí)字符串上進(jìn)行迭多么容注意,件的內(nèi)入一個(gè)串或者入列表他時(shí)候很有用。在就可以符串使則表達(dá)作,也將行列入一些據(jù)結(jié)構(gòu)中備將來(lái)。##代 11-9用read迭代每個(gè)字f=open(filename)forcharinf.read():#代 11-10用readlines迭代f=forlineinf.readlines():使 實(shí)現(xiàn)懶惰行迭在需要對(duì)一個(gè)非常大的文件進(jìn)行行迭代的操作時(shí),會(huì)占用太多的內(nèi)存。這個(gè)時(shí)候可以使用readline方法來(lái)替代。當(dāng)然,在Pythonfor循環(huán),那么它就是首選。本例恰好可以使用循環(huán)可以使用一個(gè)名為懶惰行迭代的方法:說它懶惰第十章內(nèi)已經(jīng)介紹過,代碼11-11演示了它的用法。注意,模塊包##代 11-11用fileinput來(lái)對(duì)行進(jìn)行迭importforlineinfileinput.input(filename): 實(shí)現(xiàn)懶惰行迭代。它的工作方式和readlines很類 紹)

們,從而對(duì)它們進(jìn)行迭代。如代碼11-12所示,很優(yōu)雅,不是嗎?

##代 11-12迭代文f=open(filename)forlineinf:f責(zé)關(guān)閉文件(也就是剛才所做的),那么例子應(yīng)該進(jìn)一步簡(jiǎn)化,如代碼11-13所示。在那個(gè)f

##代 11-13對(duì)文件進(jìn)行迭代而不使用變 forlineinopen(filename): importimportforlineinsys.stdin:>>>>>>f=open("somefile.txt",>>>f.write("First>>>f.write("Second>>>f.write("Third>>>>>>lines=>>>['Firstline\n','Secondline\n','Third>>>first,second,third=>>>first'First>>>second'Second>>>third'Third?在使

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論