在python中启动程序,然后是一个监视程序生成的输出文件的python脚本

时间:2014-02-05 18:40:57

标签: python

我想从python启动程序,在本例中是abaqus(有限元分析软件),使用:

os.system('abaqus job=' + JobName + ' user=' + UELname + ' interactive')

在运行程序5分钟后,我想执行一个python脚本来监视abaqus生成的一些输出文件。如果满足某个条件,则python脚本将终止abaqus作业。这里有一个问题。要读取输出文件,我需要从abaqus运行python脚本:

os.system('abaqus cae noGUI=results2.py')

我的问题是:

我可以通过以下方式完成此操作:

os.system('abaqus job=' + JobName + ' user=' + UELname + ' interactive')
time.sleep(300)
os.system('abaqus cae noGUI=results2.py')

我知道使用interactive密钥会使系统在执行其他操作之前等待abaqus作业完成。因此,我认为这并不像我希望的那么简单。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您是否尝试过subprocess模块?

答案 1 :(得分:1)

逻辑似乎很好,我建议你使用subprocess,而不是os.system。由于您正在调用命令,因此您可以像这样一次运行所有这些命令

cmdToRun = '\'abaqus job=\' + JobName + \' user=\' + UELname + \' interactive\' ; sleep 300; abaqus cae noGUI=results2.py'