Python3中的os.read()和sys.stdin.read()之间有什么区别

时间:2018-05-03 12:18:29

标签: python python-3.x performance io built-in

在下面给出的链接中,答案表明os.read() / os.write()sys.stdin.read() / sys.stdout.write()都可以用于快速I / O.但我没有找到任何关于两者中哪一个更快或者是否存在一个比其他人表现更好的具体情况的解释。

有人可以解释一下这些方法之间的区别吗?

Fastest stdin/out IO in python 3?

1 个答案:

答案 0 :(得分:2)

您应该进行衡量以进行检查,但sys.stdinsys.stdoutio.TextIOWrapper个对象,至少包括将传入数据解码为unicode,并将传出数据编码为为输出流配置的编码。

在此基础上应该是os.read()/os.write()更快的情况,因为这些是只处理字节的低级函数,无论编码如何,如果你正在处理面向字节的数据,例如ascii文本,二进制等。

如果要分析os函数,则还应考虑单独编码和解码数据的时间(如果应用程序需要)。您可能会发现在两个单独的步骤中执行编码和I / O将比sys方法慢。

Python 3中的一些其他差异是os函数接受/返回bytes个对象,而sys个对象处理str个对象。