现在我使用子进程和psutil库将我的ipython笔记本与xfoil耦合以运行一些计算。 但是,在某些情况下,xfoil无法收敛,它只是继续运行。如何在时间用完时对通信进行计时并终止进程?
import psutil as ps
from subprocess import PIPE
import time
pro = ps.Popen(['xfoil.exe'],
stdin=PIPE,
stdout=None,
stderr=None,
encoding='utf8')
#execute the script
res = pro.communicate('\n'.join(scri))
这是使用psutil与python笔记本中的xfoil进行通信的代码。
下面是我运行xfoil计算的脚本。
由于计算全部在pro.communicate()
函数中运行。我不能使用time.sleep()
函数,好像xfoil没有响应,它永远不会到time.sleep
函数。我该如何解决这个问题?
['load backup/S813.txt',
'S813',
'MDES',
'FILT',
'EXEC',
' ',
'PANE',
'OPER',
'ITER 150',
'RE 300000',
'VISC 300000',
'PACC',
'teste.txt',
' ',
'ALFA 10.1',
'PACC',
' ',
' ',
' ',
'QUIT\n']