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