从 Python 3 将以下内容输入 Windows 命令行的最佳方法是什么?命令中有三个文件路径必须在一行中输入(我相信)。
"C:\Program Files\ANSYS Inc\ANSYS Student\v194\Framework\bin\Win64\runwb2"-B -F "E:\MEngA\Ansys\IFD_PartA_Rev3.wbpj"-R "E:\MEngA\Results\sn07\script_partA.wbjn"
它需要引号。目前正在尝试:
os.system('"C:\Program Files\ANSYS Inc\ANSYS Student\v194\Framework\bin\Win64\runwb2"-B -F "E:\MEngA\Ansys\IFD_PartA_Rev3.wbpj"-R "E:\MEngA\Results\sn07\script_partA.wbjn"')
但是空格会导致问题:
“C:\Program”未被识别为内部或外部命令、可操作程序或批处理文件。
在尝试时在文件路径之前使用 r :
os.system(r'"C:\Program Files\ANSYS Inc\ANSYS Student\v194\Framework\bin\Win64\runwb2")
但不适用于完整字符串。有什么想法可以解决这个问题吗?
最佳答案
您可以使用subprocess.run
它接受一起组成完整命令的字符串列表。由于您的路径包含反斜杠,您可以使用 r''
来获取原始字符串。第一个路径也包含空格,因此需要用额外的引号 ""
括起来。
import subprocess
subprocess.run([
r'"C:\Program Files\ANSYS Inc\ANSYS Student\v194\Framework\bin\Win64\runwb2"',
'-B',
'-F',
r'E:\MEngA\Ansys\IFD_PartA_Rev3.wbpj',
'-R',
r'E:\MEngA\Results\sn07\script_partA.wbjn',
])
关于Python - os.system - 输入具有多个文件路径的命令行(r"C :\etc") 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60177467/