Python3 中的 os.read() 和 sys.stdin.read() 有什么区别
What is the difference between os.read() and sys.stdin.read() in Python3
在下面给出的link中,答案表明os.read()
/os.write()
和sys.stdin.read()
/sys.stdout.write()
都可以用于快速I/O。但是我没有找到任何关于两者中哪一个更快的解释,或者是否存在任何一个比另一个表现更好的特定情况。
有人可以解释一下这些方法之间的区别吗?
Fastest stdin/out IO in python 3?
您应该测量以检查,但是 sys.stdin
和 sys.stdout
是 io.TextIOWrapper
对象,它们至少包括将传入数据解码为 unicode 和对传出数据进行编码的附加功能数据到为输出流配置的任何编码。
在此基础上,os.read()/os.write()
应该会更快,因为如果您正在处理面向字节的数据,例如,这些是只处理字节的低级函数,无论编码如何。 ascii 文本、二进制等
如果您正在分析 os
函数,您还应该考虑单独编码和解码数据的时间(如果您的应用程序需要)。您可能会发现,在两个单独的步骤中执行编码和 I/O 会比 sys
方法慢。
Python 3 中的一些其他差异是 os
函数 accept/return bytes
对象而 sys
对象处理 str
对象。
在下面给出的link中,答案表明os.read()
/os.write()
和sys.stdin.read()
/sys.stdout.write()
都可以用于快速I/O。但是我没有找到任何关于两者中哪一个更快的解释,或者是否存在任何一个比另一个表现更好的特定情况。
有人可以解释一下这些方法之间的区别吗?
Fastest stdin/out IO in python 3?
您应该测量以检查,但是 sys.stdin
和 sys.stdout
是 io.TextIOWrapper
对象,它们至少包括将传入数据解码为 unicode 和对传出数据进行编码的附加功能数据到为输出流配置的任何编码。
在此基础上,os.read()/os.write()
应该会更快,因为如果您正在处理面向字节的数据,例如,这些是只处理字节的低级函数,无论编码如何。 ascii 文本、二进制等
如果您正在分析 os
函数,您还应该考虑单独编码和解码数据的时间(如果您的应用程序需要)。您可能会发现,在两个单独的步骤中执行编码和 I/O 会比 sys
方法慢。
Python 3 中的一些其他差异是 os
函数 accept/return bytes
对象而 sys
对象处理 str
对象。