python - Python - os.system - 输入带有多个文件路径的命令行(替代 r"C:\etc")
问题描述
从 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' is not recognized as an internal or external command, operable program or batch file.
在尝试文件路径之前使用 r :
os.system(r'"C:\Program Files\ANSYS Inc\ANSYS Student\v194\Framework\bin\Win64\runwb2")
但不适用于完整的字符串。任何想法如何解决这个问题?
解决方案
您可以使用subprocess.run
which 接受一起构成完整命令的字符串列表。由于您的路径包含反斜杠,您可以使用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',
])
推荐阅读
- url - 如何使用 XAMPP 将 localhost 的 IP 更改为 URL
- java - 在将 jnlp 从 openjdk 8 迁移到 openjdk 9 时,JarIndexAccess 无法访问类 jdk.internal.util.jar.JarIndex(在模块 java.base 中)
- excel - Excel - 将换行符(alt + enter)单个单元格内容转换为不同的行
- actions-on-google - 使用 actions-on-google nodejs lib v2 的谷歌操作甚至无法创建简单的响应
- python - 用于 DQN 强化学习的 Keras Tensorboard
- delphi - 混合原子操作和非原子操作
- sql - 在 postgresql 中对日期列进行一些操作
- javascript - 无法在 ReactJS 后端项目上将项目添加到 SQL 数据库
- web-services - Web 服务请求中的 while 语句
- ajax - Axios 获取请求响应时间过长