Python-文件IO及编码

几种编码标准

ASCII 美国信息交换标准代码
GB2312 国标码
GBK 国标扩展码
Unicode 统一码 16位
UTF-8 可变长度字符编码

f = open()函数

用于打开文件,创建一个 file 对象,参数及顺序如下:

  • file
    包含文件名称的一个字符串,内容即为文件路径,分为两种方式:
    相对路径:从当前文件目录开始
    绝对路径:从磁盘开始

  • mode='r'
    打开文件的模式:
    r:默认模式,以只读方式打开文件,文件指针在文件开头。若文件不存在,抛出异常
    w:以只写方式打开文件,若文件存在会被覆盖,若文件不存在会自动创建
    a:以追加方式打开文件,若文件已存在,则指针在文件尾,若文件不存在则自动创建
    r+:以读写方式打开文件,指针在文件开头,若文件不存在,抛出异常
    w+:以读写方式打开文件,若文件存在会被覆盖,若不存在,自动创建
    a+:以读写方式打开文件,若文件存在,指针在文件末尾,若不存在,自动创建
    b:默认均以文本方式打开文件,若在上述字母后加“b”意为以二进制方式打开

  • buffering=-1
    如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

  • encoding=None
    指明对文件编码方式

  • errors=None
    指明编码和解码错误时怎么样处理。不能在二进制的模式下使用。
    1)当指明为’strict’时,编码出错则抛出异常ValueError。
    2)当指明为’ignore’时,忽略错误。
    3)当指明为’replace’时,使用某字符进行替代模式,比如使用’?’来替换出错的。
    4)其它相应还有surrogateescape/xmlcharrefreplacs/backslashreplace。

  • newline=None
    控制文本模式之下,一行的结束字符。可以是None,’’,\n,\r,\r\n等。

  • closefd=True
    用来当给一个文件句柄传进来时,而当退出文件使用时,而不对文件句柄进行关闭。如果传递一个文件名进来,这个参数无效,必定为True方式。用来当给一个文件句柄传进来时,而当退出文件使用时,而不对文件句柄进行关闭。如果传递一个文件名进来,这个参数无效,必定为True方式。

  • opener=None
    用来实现自己定义打开文件方式,较为复杂

File对象

一个文件被打开后,有一个file对象,可以得到有关该文件的各种信息。

File对象属性

f.closed 如果文件已被关闭返回true,否则返回false。
f.mode 返回被打开文件的访问模式。
f.name 返回文件的名称。
f.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

File对象函数

  • f.close()
    关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。
    当 file 对象,被引用到操作另外一个文件时,Python 会自动关闭之前的 file 对象。

  • f.write(str)
    向文件中写入指定字符串。

  • file.writelines(sequence)
    向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

  • f.read(size)
    从文件读取指定的字节数,如果未给定或为负则读取所有。

  • f.readline(size)
    从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。

  • f.readlines()
    读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。
    如果碰到结束符 EOF 则返回空字符串。

  • f.tell()
    返回文件的当前位置,即文件指针当前位置。

  • file.next()
    返回文件下一行。

  • f.seek(offset, whence=0)
    用于移动文件读取指针到指定位置
    offset -- 开始的偏移量,也就是代表需要移动偏移的字节数
    whence -- 默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

你可能感兴趣的:(Python-文件IO及编码)