python中直接命令行输入的subprocess.call有什么不同?

时间:2014-05-22 11:52:02

标签: python shell subprocess

当我使用python脚本调用FEM软件Abaqus时遇到了问题。就这个: 当我使用脚本启动abaqus作业时,abaqus被调用但在软件预处理期间发生错误:

subprocess.call(["abaqus job=job_name oldjob=oldjob_name user=user.for int  scratch=C:\Temp"],shell=True)

但是当我直接在命令行中调用“abaqus job = job_name oldjob = oldjob_name user = user.for int scratch = C:\ Temp”时,它就可以了。 这两种方式有什么区别吗?

1 个答案:

答案 0 :(得分:0)

您需要拆分参数列表:

subprocess.call(["abaqus", "job=job_name", "oldjob=oldjob_name", "user=user.for", "int", "scratch=C:\Temp"], shell=True)

这告诉call这些是个别参数。如果你传递一个长字符串,它认为这是一个单独的参数。