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.stdinsys.stdoutio.TextIOWrapper 对象,它们至少包括将传入数据解码为 un​​icode 和对传出数据进行编码的附加功能数据到为输出流配置的任何编码。

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

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

Python 3 中的一些其他差异是 os 函数 accept/return bytes 对象而 sys 对象处理 str对象。