【问题标题】:Python stdin readline over 4096 bytes? [duplicate]Python stdin readline 超过 4096 字节? [复制]
【发布时间】:2012-07-08 20:41:24
【问题描述】:

可能重复:
Setting smaller buffer size for sys.stdin?

我有一个长度超过 4096 字节的输入行进入 Python 中的标准输入。代码简单地说:

line = sys.stdin.readline()

在 4096 字节处截断行。有人知道解决办法吗?

【问题讨论】:

  • 在这里工作正常(Linux/x86-64 上的 Python 2.7);你在哪个平台上?
  • 你怎么知道它被截断了? docs.python.org/release/2.6.7/library/…
  • 标准输入流中是否有可能存在\n
  • @Rodrigue:这不是重复的。
  • Linux/x86?您是直接从终端读取吗?您可能想看看这个描述与sys.stdin 缓冲无关的较低级别行为的问题:stackoverflow.com/questions/18015137/…

标签: python stdin


【解决方案1】:
line = sys.stdin.readline()[1*1024*1024]

当我必须读取文件(几 MB)时,这对我有用。

【讨论】:

  • 我对此表示怀疑。这将为您提供文件第一行的单字节 1048576 字节。
  • @Wooble 这显然只有在 readline 返回大小至少为 1mb+1 的缓冲区时才有效。
  • @Voo:这不是我的阅读,尽管无论如何这会使这更像是“我的输入没有被截断为 4096 字节”comment,而是而不是回答 OP 的问题。
猜你喜欢
  • 2020-01-26
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 2017-09-19
相关资源
最近更新 更多