首页 > 解决方案 > Python:我不能从标准输入获得超过 65885 个字节

问题描述

我有一个 Python 脚本,用于从标准输入获取数据,如下所示:

$ cat requests.txt | ./script.py

它工作得很好,但是当我有超过 65885 个字节时requests.txt,脚本只会获取这些字节。我得到这样的标准输入:

import sys
from queue import Queue


def to_queue():
    '''Read the pipe in and store lines as queue elements'''
    q = Queue()
    for line in sys.stdin:
        print(line)
        q.put(line)
    return q

print(line)通过标准输出向我表明我得到的数据不完整。

我在 Mac OS Catalina 上使用 Python 3.7。

知道如何解决吗?也许增加标准输入缓冲区?提前致谢。

更新:我在 MacOC Catalina 中测试它,而不是在 Ubuntu 中。

我看到并做这样的事情:

gen_requests.sh > requests.txt

然后:

cat requests.txt | python script.py--> 有效,显示所有内容

gen_requests.sh | python script.py--> 它失败了,它只显示到 65585 字节

这怎么可能??

标签: pythonpython-3.xstdoutstdinmacos-catalina

解决方案


推荐阅读