Запускайте два скрипта python одновременно

Я начинаю питон и ubuntu. Я пытаюсь запустить два сценария python одновременно в терминале, моя команда в терминале: python one.py|python three.py

one.py печатает четыре массива переменных на терминале

[! f3] читает значения из терминала и сохраняет значения в другом массиве.

Я считаю, что этот процесс в терминале ubuntu называется pipelining.

Проблема, с которой я столкнулась, - это python script three.py ждет, пока скрипт python one.py завершит выполнение. Я хочу, чтобы это происходило в реальном времени, когда one.py имеет выход, three.py должен читать и сохранять это значение в реальном времени.

вывод one.py

код: три.py

3
задан 12 April 2018 в 14:33

2 ответа

Ваша реализация three.py неверна.

Путем записи

temp = sys.stdin.readlines()

Вы говорите Python для чтения всех строк со стандартного ввода и сохраняете его как список в своем temp. Очевидно, что этот вызов блокируется до тех пор, пока вход не будет исчерпан, что происходит только тогда, когда one.py завершен и завершается, закрывая конвейер. Только после этого вы начнете обработку ввода.

Вместо этого вы должны читать стандартный ввод строки за строкой в ​​цикле, например:

#!/usr/bin/env python3 import sys for line in sys.stdin: print(line)
3
ответ дан 17 July 2018 в 16:59

Ваша реализация three.py неверна.

Путем записи

temp = sys.stdin.readlines()

Вы говорите Python для чтения всех строк со стандартного ввода и сохраняете его как список в своем temp. Очевидно, что этот вызов блокируется до тех пор, пока вход не будет исчерпан, что происходит только тогда, когда one.py завершен и завершается, закрывая конвейер. Только после этого вы начнете обработку ввода.

Вместо этого вы должны читать стандартный ввод строки за строкой в ​​цикле, например:

#!/usr/bin/env python3 import sys for line in sys.stdin: print(line)
3
ответ дан 23 July 2018 в 17:50
  • 1
    @ An0n Пожалуйста, воздержитесь от публикации не полезных комментариев и бессмысленных комментариев к сообщениям. Спасибо! – Thomas Ward♦ 16 April 2018 в 19:05
  • 2
    @ An0n То же самое относится и к бесполезным изменениям. Брось. – Thomas Ward♦ 16 April 2018 в 19:22

Другие вопросы по тегам:

Похожие вопросы: