Python Lib -- 文件对象

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,238评论 4 16
  • 1 文件打开方法 1.1 open及file内建函数 内建函数open()/file()提供了初始化输入/输出(I...
    Ke爺阅读 366评论 0 0
  • 文/Blingbling冰 最后一个夏天,我们就要说再见。 一如往常,安详… 拍完照片,收拾好东西,回家。仓促的毕...
    小冰769阅读 308评论 3 14
  • 一、让霄霄发来工作所用资料的链接,霄霄不小心丢过来了自己博客的链接。霄霄以为博客如今没几个人看了,写在那里应该很安...
    趴趴papa阅读 1,092评论 0 0