如何在Windows Python中在子进程花费太多时间时终止子进程?

2024-10-03 19:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我使用耦合我的ipython笔记本和xfoil使用子进程和psutil库来运行一些计算。 然而,在某些情况下,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))

下面是在python笔记本中使用psutil与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']

Tags: 函数importtxtnonetime进程笔记本sleep