【发布时间】:2012-01-17 21:49:44
【问题描述】:
尝试将子进程的输出重定向到文件。
server.py:
while 1:
print "Count " + str(count)
sys.stdout.flush()
count = count + 1
time.sleep(1)
劳谢:
cmd = './server.py >temp.txt'
args = shlex.split(cmd)
server = subprocess.Popen( args )
输出出现在屏幕上,temp.txt 保持为空。
我做错了什么?
作为背景,我正在尝试捕获已经编写好的程序的输出。
我不能使用:
server = subprocess.Popen(
[exe_name],
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
因为程序可能不会刷新。
相反,我打算通过 fifo 重定向输出。如果我手动启动 server.py 这工作正常,但如果我 Popen() 导致重定向不起作用显然不会。
ps -aux 表示server.py 已正确启动。
【问题讨论】: