【问题标题】:What is the fastest way to do I/O in Python?在 Python 中进行 I/O 的最快方法是什么?
【发布时间】:2013-07-20 01:12:18
【问题描述】:

就像那些编程挑战一样,我现在正在做以下事情:

对于单个变量:

x = int(sys.stdin.readline())

对于许多变量

A, B, C = map(int,sys.stdin.readline().split())

这是最优的还是有更快的方法?

【问题讨论】:

  • 对于大多数用例,Python 普通的 readline() 就足够了。您可以尝试将其包装在生成器中进行迭代,该生成器是文件 IO 内置的。我不知道是否有适用于所有用例的通用“最佳”。可以按字节输入,但不一定更快。

标签: python performance input io


【解决方案1】:

如果你有 numpy 可用,numpy 加载功能非常快。例如:

>>> import numpy
>>> s = '1\n2\n3\n4\n'
>>> data = numpy.fromstring(s, dtype=int, sep='\n')
>>> data
array([1, 2, 3, 4])

此示例从字符串加载,但您也可以使用 numpy.fromfile 直接从打开的文件加载。

【讨论】:

    【解决方案2】:

    Python 的 sys 库有 2 个文件对象 stdinstdoutSTDINSTOUT 连接。 stdin 文件对象有 readline()readlines() 方法 & stdout 文件对象有 write () 方法。我们可以使用这些方法在 Python 中实现快速 I/O。

    访问here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-14
      • 2017-06-15
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      相关资源
      最近更新 更多