- 论坛徽章:
- 0
|
本帖最后由 wn0112 于 2013-05-30 11:09 编辑
jeppeter 发表于 2013-05-30 10:49 ![]()
回复 3# wn0112
如果只是 “即时” 输出到终端的话(也就是sys.stdout)这样就可以了,是没问题的
- import subprocess
- pipe = subprocess.Popen('myapp.exe file.ext')
复制代码 但现在是要取得输出内容,就用了管道,除非用readline(),read(), communicate()都不能“即时”
你是说这样用吗?也是不行的,要等myapp.exe结束才有输出
- import subprocess, time
- pipe = subprocess.Popen('myapp.exe file.ext', stdout=subprocess.PIPE)
- while 1:
- pipe.stdout.flush()
- pipe.stdout.read()
- time.sleep(0.2)
复制代码 如果在read()里设置字节数,且字节数小于实际内容,也可以即时,但如果大于实际内容也不会即时了,好像要等达到字节数或结束才输出
- import subprocess, time
- pipe = subprocess.Popen('myapp.exe file.ext', stdout=subprocess.PIPE)
- while 1:
- pipe.stdout.read(5)
- time.sleep(0.2)
复制代码 |
|