我正在尝试执行
"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")
答案 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)
这里的罪魁祸首是Program
和files
之间的空格。在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
合并。