我想创建一个监视DumpIt RAM转储的python程序。无论如何,弄清楚它只是一个命令行程序,在完成工作并退出之前询问一个Y / N问题。
我尝试使用Python子进程模块执行此操作但是stdout的读取是阻塞的。我认为因为缓冲标准输出。
当我启动一个打印出来的程序然后退出时,它会起作用,但我希望在进程运行时获得实时输出。
我已经尝试了以下内容:
live output from subprocess command
http://www.saltycrane.com/blog/2009/10/how-capture-stdout-in-real-time-python/
以下是Windows 10 x64,Python 3.5
上的代码print("start dump")
proc = subprocess.Popen([os.getcwd() + "\Ressources\Dumper\DumpIt.exe"], bufsize=0, stdout=subprocess.PIPE)
print("dump launched")
#v1
for line in iter(proc.stdout.readline, ''):
sys.stdout.write(str(line))
#v2
# while True:
# line = proc.stdout.readline()
# sys.stdout.write(str(line))
# if line == "" and proc.poll() is not None:
# break
print("wait")
proc.wait()
print("done")
输出:
start dump
dump launched
抱歉英语不好