我试图通过Windows 8计算机上的命令提示符从Python运行Abaqus脚本.
我遇到的问题是我无法让Python脚本等到Abaqus工作完成后才能继续前进.
下面是我尝试过的一些代码,一次一个:
os.popen('abaqus job=plate ask_delete=OFF')
os.system('abaqus job=plate ask_delete=OFF')
os.system('abaqus job=plate ask_delete=OFF')
subprocess.call('abaqus job=plate ask_delete=OFF',shell=True)
subprocess.check_call('abaqus job=plate ask_delete=OFF',shell=True)
我也试过在这样的子进程工具之后使用wait命令:
p1 = subprocess.check_call('abaqus job=plate ask_delete=OFF',shell=True) p1.wait()
但我得到错误:AttributeError: 'int' object has no attribute 'wait'
.
我不想使用a,time.sleep()
因为这会导致我的代码中有相当多的停机时间.我使用的是Python 3.5.2和Anaconda 4.2.0(64位).
您需要包含abaqus关键字"interactive".例如
abaqus myjob=bob1 ask_delete=off interactive
否则它将在后台运行并且所有输出都转到.bob1.log
此外,还有一个带有abaqus安装的内置python环境,可用于自动运行abaqus作业.如果你使用这个"abaqus"python,有更多的工作控制和监控选项