Python: я не могу получить больше чем 65885 байтов от стандартного ввода - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть сценарий 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) показывает мне через стандартный вывод, что мои данные были неполными.

Я использую Python 3.7 на Ма c ОС Каталина.

Есть идеи как можно решить? Может быть, увеличение буфера стандартного ввода? Заранее спасибо.

ОБНОВЛЕНИЕ: я тестирую это в MacO C Catalina, а не в Ubuntu.

Я вижу и делаю что-то вроде этого:

gen_requests.sh > requests.txt

Тогда:

cat requests.txt | python script.py -> все работает, показывает все содержимое

gen_requests.sh | python script.py -> не работает, показывает только до 65585 байт

Как это возможно ??

...