Python文件I / O

示例

file不再是中的内置名称3.x(open仍然有效)。

文件I / O的内部详细信息已移至标准库io模块,这也是以下内容的新主目录StringIO:

import io
assertio.openis open # 内置是别名
buffer = io.StringIO()
buffer.write('hello, ') # 返回写入的字符数
buffer.write('world!\n')
buffer.getvalue() # “你好,世界!\ n”

文件模式(文本还是二进制)现在确定通过读取文件产生的数据类型(以及写入所需的类型):

with open('data.txt') as f:
    first_line = next(f)
    assert type(first_line) is str
with open('data.bin', 'rb') as f:
    first_kb = f.read(1024)
    assert type(first_kb) is bytes

文本文件的编码默认为返回的。要明确指定编码,请使用关键字参数:locale.getpreferredencoding(False)encoding

with open('old_japanese_poetry.txt', 'shift_jis') as text:
    haiku = text.read()