在下面给出的链接中,答案表明os.read()
/ os.write()
和sys.stdin.read()
/ sys.stdout.write()
都可以用于快速I / O.但我没有找到任何关于两者中哪一个更快或者是否存在一个比其他人表现更好的具体情况的解释。
有人可以解释一下这些方法之间的区别吗?
答案 0 :(得分:2)
您应该进行衡量以进行检查,但sys.stdin
和sys.stdout
是io.TextIOWrapper
个对象,至少包括将传入数据解码为unicode,并将传出数据编码为为输出流配置的编码。
在此基础上应该是os.read()/os.write()
更快的情况,因为这些是只处理字节的低级函数,无论编码如何,如果你正在处理面向字节的数据,例如ascii文本,二进制等。
如果要分析os
函数,则还应考虑单独编码和解码数据的时间(如果应用程序需要)。您可能会发现在两个单独的步骤中执行编码和I / O将比sys
方法慢。
Python 3中的一些其他差异是os
函数接受/返回bytes
个对象,而sys
个对象处理str
个对象。