【发布时间】:2012-01-22 16:34:00
【问题描述】:
我在使用 python 时遇到了一些问题。我正在尝试从正在运行的脚本中获取输出并在另一个脚本中使用它。所以,我想做的是这样的;
假设out.py 和in.py 像这样;
# out.py
def main():
while True:
print "test"
time.sleep(10)
main()
# in.py
text = sys.stdin.readline()
print "hello " + text
我想运行这样的脚本,
$ python out.py | python in.py
但是,这会挂起并且不打印任何内容,而是每 10 秒打印一次“hello test”。由此,我猜| 会等到out.py 终止。好吧,如果我想将 in.py 与守护进程一起使用怎么办?
我的实际问题是;我正在尝试从arpwatch 获取输出。 arpwatch 作为守护进程运行,并将 ip/mac 配对发送到 stderr。我想得到那个输出并解析它;所以,我需要这样的东西;
$ arpwatch | python myscript.py
要实现这一点,我应该如何编码myscript.py?我曾尝试使用subprocess module,,但我再次没有成功。我希望我能清楚地解释我的问题,因为我的英语不错。
感谢您的帮助。
【问题讨论】: