os.system不工作,但在命令提示符中键入相同的东西工作

时间:2017-03-27 02:25:07

标签: python command-prompt os.system abaqus

我正在尝试使用

通过命令提示符运行python abaqus
os.system('abaqus CAE noGUI=ODBMechens')

它似乎没有运行任何东西,但如果我自己进入命令提示符并输入

abaqus CAE noGUI=ODBMechens

它有效。我在Windows 10上使用python 2.7。 感谢

2 个答案:

答案 0 :(得分:1)

尝试使用子进程模块(它更新): 例如,

subprocess.call(["ls", "-l"])

在您的示例中,它将是:

subprocess.call('abaqus CAE noGUI=ODBMechens')

有关子进程模块与使用os.system调用之间区别的更多信息:

The Difference between os.system and subprocess calls

答案 1 :(得分:0)

您应该在代码之前添加

import os
import subprocess
try:
    os.environ.pop('PYTHONIOENCODING')
except KeyError:
    pass

然后:

cmd = subprocess.Popen('abaqus CAE noGUI=ODBMechens',cwd=jobPath, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE, shell=True).communicate()[0]

变量cmd包含您的输出。我发现这种方式有效。