我正在处理一个项目,我在Windows上处理外部可执行文件。我正在使用Popen与外部可执行文件进行交互。进程不等待孩子python
工作流程是如下:命令 - > .EXE - > output_files - > read_outputfiles
的命令被馈送到.EXE文件作为然而exepected,所创建的进程不等待对命令执行并因此不会生成输出文件。我已经尝试过time.sleep(1)但没有用。我注意到输出文件只有在python代码终止时才被写入。
for i in range(0, len(commands)):
process.stdin.write(commands[i])
#out, err=process.communicate()
#print err
#process.terminate()
#Reading AVL output files
# Open AVLaero.dat
fid = open('AVLaero.dat', 'r')
AVLaero=fid.read()
fid.close()
process.terminate()
当找不到AVLaero.dat时引发异常后,程序终止后将写入文件。
为了测试这是否是由avl.exe文件引起的,我添加了一个无限while循环来保持我的Python代码在运行时给avl.exe写入时间。但是,这并没有导致输出文件被写入。
我使用的Parallels Desktop的虚拟机上运行Windows ...
感谢您的解决!我也必须将stdout更改为None。 – pds