系列3python之经典教程讲义11文件和流_第1页
系列3python之经典教程讲义11文件和流_第2页
系列3python之经典教程讲义11文件和流_第3页
系列3python之经典教程讲义11文件和流_第4页
系列3python之经典教程讲义11文件和流_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

open(name[,open(name[,mode[, >>>>>>f=Traceback(mostrecentcalllast):FileTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>IOError:[Errno2]Nosuchfileordirectory: 'r+能在打开一个文本 可以用来一个二进制文件。如果使用二进制模式来(写入)文件的话,与使用文本模式不会有很大区别。仍然能读一定

转换

0 0

对象是支持一些类方法的对象,最重要的是支持read方法或者方法,或者两者

第10sys模块的部分曾经提到过3种流。它们实际上是文件(或者是类文件对象):大 >>>>>>f=open("somefile.txt",>>> o,>>>f.write("World!")>>> >>>>>>f=open("somefile.txt",>>>f.read(4) 'o,World!'首先指定了我要的字符数 ,然后(通过不提供要的字符数的方式)了剩下的文 下面这个例子(假设是GUNbash)。$$catsomefile.txt|pythonsomescript.py| MacOSX中,是通过Terminal程序,可以使用s cat )catpython 。应该是从标准输入python | |cat 中数据( cat 的一个简单的( 内容如代码11-2所示。##11-1统计`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相反:传给它一个字符串的列表(实际上任何序列或者可迭代的

##Openyourfilehere#Writedatatoyourfile 语句withwithopen("somefile.txt")assomefile: fromfrom import

文件可以被用作上下文管理器。它们的 假 ##代 11-3一个简单的文本文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方法对每个字符进行循f=open(filename)char=f.read(1)whilechar:char=f.read(1)

charf.read(1被重复地使用,代码重复通常被认为是一件坏事。(懒 ##代 11-7用不同的方式写循f=open(filename)whileTrue:char=f.read()ifnotchar:break语句不应该频繁地使用(因为这样会让代码很难懂);尽管如此,代 ##代码 11-8在while循环中使用readlinef=open(filename)whileline=f.readline()ifnotline:如果文是很大么可以不带参的 方法一整个把整个做一个字来,者用 方法(文读入一符串列在列表个字符串就行)。码和码展示这文件时字符串上进行迭多么容注意,件的内入一个串或者入列表他时候很有用。在就可以符串使则表达作,也将行列入一些据结构中备将来。##代 11-9用read迭代每个字f=open(filename)forcharinf.read():#代 11-10用readlines迭代f=forlineinf.readlines():使 实现懒惰行迭在需要对一个非常大的文件进行行迭代的操作时,会占用太多的内存。这个时候可以使用readline方法来替代。当然,在Pythonfor循环,那么它就是首选。本例恰好可以使用循环可以使用一个名为懒惰行迭代的方法:说它懒惰第十章内已经介绍过,代码11-11演示了它的用法。注意,模块包##代 11-11用fileinput来对行进行迭importforlineinfileinput.input(filename): 实现懒惰行迭代。它的工作方式和readlines很类 绍)

们,从而对它们进行迭代。如代码11-12所示,很优雅,不是吗?

##代 11-12迭代文f=open(filename)forlineinf:f责关闭文件(也就是刚才所做的),那么例子应该进一步简化,如代码11-13所示。在那个f

##代 11-13对文件进行迭代而不使用变 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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论