Python常用文件处理命令详解

参考《Python核心编程(第二版)》

 

1.文件内联函数open()与file()

  file_object=open(file_name,access_mode=‘r’,buffering=-1)

      file_name表示文件名称,可以是绝对路径,也可以是相对路径。access_mode表示访问方式,r表示读,w表示写,a表示追加,U表示通用换行符支持。buffering表示缓冲区大小,0表示无缓冲,1表示只缓冲一行数据,负值或不设置表示使用默认缓冲机制。Python中的open机制衍生自C语言中的fopen,很多参数可以沿袭使用,如r+、rb等。

     注:r/U-文件必须已经存在;

    w-若文件已存在则先清空再打开(相当于重新创建);

    a-写入数据追加到文件末尾,即使seek到其他地方;如果文件不存在,则以w模式创建。

fp=open('/etc/motd/')    #以只读方式打开文件
fp=open('test','w')         #以只写方式打开文件
fp=open('data','r+')       #以读写方式打开文件
fp=open(r'c:\io.sys','rb')  #以二进制读模式打开文件

   file()与open()基本相同,可以通用,建议在打开文件时使用open(),而在需要特别说明处理的对象是文件时使用file.

  (待补充)*关于通用换行符U的作用

 

2.文件内建方法

      open()成功返回一个文件对象后,后续对该文件的操作都通过这个“句柄”实现。

2.1文件输入

  read()从文件中读取指定个数的字符串,如果没有给定参数size(默认-1)或为负数,则一直读至末尾。(该方法在新版本是否尚在?)

  readline()读取文件的一行(包括行结束符)并作为字符串返回,同样有一个size参数,默认-1(此时读到行结束符返回),如果指定该参数,则超出的部分不再读,即可能返回不完整行。

  readlines()读取文件的所有行并返回一个字符串列表,参数sizhint表示返回的最大字节大小。(如果略大于它,则考虑了缓冲区)

  xreadlines()每次读取一块,随着版本更迭,已不太需要。针对需要循环读取的操作,多采用 for eachLine in file代替完成。此外还有一些已废弃的函数,不再介绍。

2.2文件输出

  write()的作用与read相反,将数据写入文件;

  writelines()的作用对应也与readlines()相方,这里没有引入writeline这个方法,因为它的作用就相当于用write方法操作“以行结束符结尾”的字符串。

  核心笔记:

         在用read或readlines方法读取文件时,Python并不会消除行结束符。可以使用strip()去掉。同样,在调用write或writelines方法时,也不会加入换行符,需要在文件写入前单独完成。

2.3文件内移动

  seek()在文件中移动指针到不同位置,参数为0—从文件头算起(绝对偏移量)、1-从当前位置算起(相对偏移量)、2-从文件尾算起。text()方法是对seek()的补充,返回当前文件指针在文件中的位置(文件开始,以字节算起)。

posted on 2014-03-24 17:36  superfox  阅读(1590)  评论(0)    收藏  举报

导航