Python Lib -- 文件对象
2018-02-15 本文已影响0人
liaozb1996
with open('filename.txt', 'wb', encoding='utf-8') as file:
# some code
模式
file_mode.PNGopen('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