io.FileIO和open()在二进制模式下的区别

时间:2018-11-22 13:49:02

标签: python python-3.x file-io

它们根据校验和得出相同的结果:

with open('openb', 'wb') as f:
    f.write(b'asdf')

with io.FileIO('fileio', 'w') as f:
    f.write(b'asdf')

它们之间有什么区别吗?什么时候应该使用一种方法代替另一种方法?

1 个答案:

答案 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()方法)