我有一个脚本继续将一些值转储到屏幕上。让我们调用这个脚本1
我需要将转储到屏幕的值由另一个python脚本处理。让我们调用这个脚本2。我脚本1不能停止
我目前使用 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中提供的命令提示符没有电源shell
答案 0 :(得分:7)
我不打算在这里谈论代码设计,因为我真的不知道你在做什么。
但是对于script2.py:
import sys
for line in sys.stdin:
print "From stdin:", line
然后运行(至少在unix / linux上,如果你在windows上,google“在powershell中管道”):
python script1.py | python script2.py
或者你想在一个python脚本中做到这一点?您可以通过简单地将其替换为具有所有必要方法(sys.stdout
等)的类来重新管道write
。
答案 1 :(得分:2)
我想你想逐行处理:
# script2.py
import sys
for line in sys.stdin:
print line # do something here with line
[edit]最后,你只需管道它们:
python script1.py | python script2.py