【问题标题】:What is the difference between os.read() and sys.stdin.read() in Python3Python3 中的 os.read() 和 sys.stdin.read() 有什么区别
【发布时间】:2018-10-13 18:15:51
【问题描述】:

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

谁能解释一下这些方法的区别?

Fastest stdin/out IO in python 3?

【问题讨论】:

  • 如果你想知道哪个最快,你必须在你自己的机器上分析它。
  • 除了性能,没有其他区别吗?
  • 当然os.read() 不太常用。

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


【解决方案1】:

您应该测量检查,但 sys.stdinsys.stdoutio.TextIOWrapper 对象,它们至少包括将传入数据解码为 un​​icode 并将传出数据编码为为输出流。

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

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

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

【讨论】:

  • 您能否通过os.write issue 提供建议?
猜你喜欢
  • 2020-11-18
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
相关资源
最近更新 更多