Python之文件处理

文件操作基本流程:

  1.打开一个文件,生成文件句柄并赋值给变量;

  2.通过文件句柄对文件进行操作;

  3.关闭文件。

文件读取模式:

  • r,只读模式(默认)。【只可读;不存在则报错;存在则删除内容(用得最多);】
  • w,只写模式。【不可读;不存在则创建;存在则首先清除原文件内容;】
  • a,追加模式。【不可读;不存在则创建;存在则只追加内容(光标不改变写入位置);】

  "+" 表示可以同时读写某个文件:

  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读,【用该模式创建句柄后,首先清除原文件内容,慎用。】
  • a+,追加,可读。

  "U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用):

  • rU
  • r+U

  "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注):

  • rb
  • wb
  • ab

  'rb+','wb+','ab+'同上文本模式。

open()函数:

  语法:open(name, mode, encoding=None)

  参数解释:name为路径\文件名,mode为读取模式(默认只读模式'r'),encoding为指定文件编码方式(默认为操作系统的编码方式)

  应用:生成文件句柄类型的对象,该对象提供对所打开的文件的操作方法,可通过该对象对文件进行各读写操作。

f = open('test', 'r', encoding='utf-8')#以只读模式(r)打开文件test.txt,指定文件编码utf-8
#f成为文件句柄,文件句柄中存在对文件操作的方法

文件句柄下的方法:

-----------------------------------------文件写操作相关-------------------------------------------------------------------

  f.write()

    写操作,'w','a','a+'或'r+'模式下,可将字符串类型的文本数据传入函数,写进文件,

                   'wb','ab'模式下,可将二进制编码数据以字符串类型传入函数,写进文件。

  f.writelines()

    传入列表或元组等可迭代对象,并将其中的元素写入文件。

  f.writable()

    判断该句柄类型是否支持写操作,返回布尔值。

-----------------------------------------文件读操作相关-------------------------------------------------------------------

  f.read()

    读操作,读取整个文件,将读取结果以字符串的方式返回(根据打开模式rb或r决定返回的是二进制数据或文本数据)。

    默认从当前光标位置读到文件末尾,可传入参数,从当前光标位置读取指定数量的字符。

  f.readline()

    读取一行(读完\n停止),并返回。

  f.readlines()

    读取整个文件,并将读取内容按行放入列表中返回。

  f.readable()

    判断该句柄是否支持读操作,返回布尔值。

-----------------------------------------文件关闭操作相关-------------------------------------------------------------------

  f.close()

    关闭文件。

  f.closed

    文件句柄的一个属性,存放布尔值,根据布尔值判断文件是否已关闭。

-----------------------------------------文件光标操作相关-------------------------------------------------------------------

  f.seek()

    设置光标位置,字节为基本单位。

    默认第二个参数是0,0模式代表相当于文件开头位置设定光标位置。

    以二进制模式打开文件时,第二个参数可设为1和2,1模式代表相对当前光标位置偏移光标位置;

  2模式代表从文件末尾设定光标的偏移量,例如f.seek(-3, 2)代表光标从文件末尾开始,向前偏移3个字节。

    

  f.tell()

    返回当前光标位置

 -----------------------------------------文件其他操作相关-------------------------------------------------------------------

  f.name

    文件名属性。

  f.flush()

    刷新操作,将内存中写好的内容刷新到硬盘文件上。

  f.truncate()

    文件截取操作,从文件开头截取指定长度的字节长度内容写入文件中。

    

posted @ 2018-09-09 21:25  恋853雨  阅读(125)  评论(0编辑  收藏  举报