它们根据校验和得出相同的结果:
with open('openb', 'wb') as f:
f.write(b'asdf')
with io.FileIO('fileio', 'w') as f:
f.write(b'asdf')
它们之间有什么区别吗?什么时候应该使用一种方法代替另一种方法?
答案 0 :(得分:1)
实际上,open()
方法将创建一个io.BufferedWriter
,它继承自IOBase
,而FileIO
也继承自IOBase
。尽管它们不是完全相同的类,但是它们支持基本相同的功能。我想如果您知道不需要缓冲,则可以使用FileIO。 python io docs page上有很多信息
最重要的句子是:
原始二进制I / O通常提供对底层OS设备或API的低级访问,并且不会尝试将其封装在高级基元中(这留给了缓冲I / O和文本I / O,在此页的后面)。
原始二进制I / O与io.FileIO相关,而缓冲I / O与io.BufferedWriter(open()
方法)