如何在Python中运行命令行

时间:2014-07-24 15:25:13

标签: python

我正在尝试执行

"C:/Program Files/AnsysEM/AnsysEM15.0/Win64/Designer.exe" -runscriptandexit "C:/Python27/simula_SIR_Phyton.py"

这是一个在程序中运行脚本而我无法做到的。我成功运行了一个文件,如:

os.startfile("C:/Users/amrodri.UPVNET/Desktop/Scripts/SIR_europea_script.adsn")

但我没有成功解决其他问题。有人可以帮忙吗? 我曾尝试过其他人:

os.system("C:/Program Files/AnsysEM/AnsysEM15.0/Win64/Designer.exe" -runscriptandexit "C:/Python27/simula_SIR_Phyton.py") 

2 个答案:

答案 0 :(得分:1)

os.system将一个字符串作为参数。为了在Python字符串中使用双引号(不终止字符串),您需要使用反斜杠转义它们,如下所示:

os.system("\"C:/Program Files/AnsysEM/AnsysEM15.0/Win64/Designer.exe\" -runscriptandexit \"C:/Python27/simula_SIR_Phyton.py\"") 

或者,替代地,改为使用单引号:

os.system("'C:/Program Files/AnsysEM/AnsysEM15.0/Win64/Designer.exe' -runscriptandexit 'C:/Python27/simula_SIR_Phyton.py'")

请参阅:
os.system()
Using quotes at the command line(这是特定于Unix的,但如果您使用的是PowerShell,也应该适用于Windows)

答案 1 :(得分:0)

这里的罪魁祸首是Programfiles之间的空格。在Windows中,当你想要执行一个包含空格的地址时,你需要将它放在“”之间,这将与Python的引用混合在一起。一个简单的解决方案是在Python中使用raw''。例如:

import os
ansysedt_exe = r'"C:\Program Files\AnsysEM\AnsysEM16.0\Win64\ansysedt.exe" -runscriptandexit C:\automation\test_1.py'
print ansysedt_exe
os.system(ansysedt_exe)

请注意,由于程序文件文件夹名称中的空格,设计者地址放在"c:\...\designer.exe"之间,但我们不必对脚本地址执行相同操作,因为那里没有空格。同样只是抬头,在R16中,designer.exe将与AnsysEDT.exe合并。