从python脚本启动时等待算盘作业完成

Aus*_*ney 1 python subprocess os.system abaqus

我试图通过Windows 8计算机上的命令提示符从Python运行Abaqus脚本.

我遇到的问题是我无法让Python脚本等到Abaqus工作完成后才能继续前进.

下面是我尝试过的一些代码,一次一个:

os.popen('abaqus job=plate ask_delete=OFF')
Run Code Online (Sandbox Code Playgroud)
os.system('abaqus job=plate ask_delete=OFF')
Run Code Online (Sandbox Code Playgroud)
os.system('abaqus job=plate ask_delete=OFF')
Run Code Online (Sandbox Code Playgroud)
subprocess.call('abaqus job=plate ask_delete=OFF',shell=True)
Run Code Online (Sandbox Code Playgroud)
subprocess.check_call('abaqus job=plate ask_delete=OFF',shell=True)
Run Code Online (Sandbox Code Playgroud)

我也试过在这样的子进程工具之后使用wait命令:

p1 = subprocess.check_call('abaqus job=plate ask_delete=OFF',shell=True)
p1.wait()
Run Code Online (Sandbox Code Playgroud)

但我得到错误:AttributeError: 'int' object has no attribute 'wait'.

我不想使用a,time.sleep()因为这会导致我的代码中有相当多的停机时间.我使用的是Python 3.5.2和Anaconda 4.2.0(64位).

小智 5

您需要包含abaqus关键字"interactive".例如

abaqus myjob=bob1 ask_delete=off interactive

否则它将在后台运行并且所有输出都转到.bob1.log 此外,还有一个带有abaqus安装的内置python环境,可用于自动运行abaqus作业.如果你使用这个"abaqus"python,有更多的工作控制和监控选项