У меня есть сценарий 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 байт
Как это возможно ??