美文网首页
Python Lib -- 文件对象

Python Lib -- 文件对象

作者: liaozb1996 | 来源:发表于2018-02-15 20:13 被阅读0次

    with open('filename.txt', 'wb', encoding='utf-8') as file:
    # some code

    模式

    file_mode.PNG

    open('filename.txt') ,默认情况下python以只读,文本模式打开文件,编码取决于系统的默认编码。

    # 查看系统默认编码
    In [71]: import sys
    
    In [72]: sys.getdefaultencoding()
    Out[72]: 'utf-8'
    

    如果要打开非文本文件,比如图片,必须加上 b 标识

    换行

    对于以文本模式打开的文件,读取时,python会自动将系统的换行符(Unix: \n , Windows: \r\n) 转换为 \n ,写入时也会自动转换。

    with 关键字

    打开文件时建议使用 with 语句,这样,with 代码块结束时,python会自动关闭文件,即使发生异常。否则,需要手动执行 file.close() 确保将缓冲区的内容写入到硬盘。

    文件对象的方法

    • file.read([size]) : size 忽略时读取整个文件的内容;文件读取完毕时返回空字符 ''
    • file.readline() 读取一行,保留 \n ,以便区分空白行 \n 或 文件结尾 ''
    • file.readlines() 返回一个列表
    • file.write('some text') 返回写入的字符数或字节数
    # 打印每一行
    with open('file.txt') as file:
      for line in file:
        print(line, end='')
    

    位置

    • file.tell() 返回当前文件读取到的位置(在二进制模式下的单位为字节)
    • file.seek(offset, from_what) 修改当前文件读取到的位置

    在二进制模式下,from_what 有3个可选值:

    • 0: 文件开头
    • 1:文件当前读取到的位置
    • 2: 文件结尾

    在文本模式下,from_what 的值只能时是0 ,offset 的值只能是 file.tell() 或 0

    相关文章

      网友评论

          本文标题:Python Lib -- 文件对象

          本文链接:https://www.haomeiwen.com/subject/zslutftx.html