尝试将子进程的输出重定向到文件.
server.py:
while 1:
print "Count " + str(count)
sys.stdout.flush()
count = count + 1
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
Laucher:
cmd = './server.py >temp.txt'
args = shlex.split(cmd)
server = subprocess.Popen( args )
Run Code Online (Sandbox Code Playgroud)
输出显示在屏幕上,temp.txt保持为空.我究竟做错了什么?
作为背景我试图捕获已经编写的程序的输出.
我不能用:
server = subprocess.Popen(
[exe_name],
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)
因为该程序可能不会刷新.相反,我打算通过fifo重定向输出.如果我手动启动server.py,这很好,但显然不是因为我Popen()导致重定向不起作用.
ps -aux显示server.py正确启动.