#python
#python
Вопрос:
У меня есть скрипт, который продолжает выводить некоторые значения на экран. Давайте вызовем этот скрипт 1
Мне нужно, чтобы значения, которые выводятся на экран, обрабатывались другим скриптом python.Давайте вызовем этот script2. I Script1 не может быть остановлен
В настоящее время я использую python 2.2, поэтому было бы здорово, если бы кто-нибудь мог привести пример без использования подпроцесса
сценарий 1 выглядит примерно так
import sys
import os
i = 0
while 1:
print i
sys.stdout.write(str(i) "n")
i = i 1
Мне нужно написать script2 таким образом, чтобы каждый вывод, сгенерированный script1, обрабатывался script2
— редактировать —
Мне нужно, чтобы он запускался в устаревшей реализации, т. е. без оболочки питания, только в командной строке, доступной в Windows XP
Комментарии:
1. Какую операционную систему вы используете?
Ответ №1:
Я не собираюсь здесь ничего говорить о дизайне кода, потому что я действительно не знаю, над чем вы работаете.
Но для script2.py:
import sys
for line in sys.stdin:
print "From stdin:", line
А затем запустите (по крайней мере, в unix / linux, если вы в Windows, погуглите «конвейеризация в powershell»):
python script1.py | python script2.py
Или вы хотели сделать это в рамках одного скрипта на python? Вы могли бы выполнить повторную передачу sys.stdout
, просто заменив его классом, который имеет все необходимые методы ( write
и т.д.).
Ответ №2:
Я предполагаю, что вы хотите обрабатывать построчно:
# script2.py
import sys
for line in sys.stdin:
print line # do something here with line
[редактировать] Наконец, вы просто передаете их:
python script1.py | python script2.py