【发布时间】:2015-09-08 21:01:28
【问题描述】:
我正在处理一个在 Windows 上处理外部可执行文件的项目。我正在使用 Popen 与外部可执行文件进行交互。
工作流程如下:commands -> .exe -> output_files -> read_outputfiles
命令按预期输入到 .exe 文件,但是,创建的进程不会等待命令执行,因此不会生成输出文件。我已经尝试过 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...
【问题讨论】: