python - 如何转义特殊字符并在命令提示符下运行命令?

标签 python

我有一个由两部分组成的问题。首先,我有一个看起来像这样的字符串

C:\Users\me\Desktop\Personal\Songs\U2 - Beautiful Day.mp3

现在,我想使用类似

的内容从我的程序中打开此文件
os.system("start "+that_string)

遗憾的是,我在命令提示符中收到错误,因为它尝试打开文件

C:\Users\me\Desktop\Personal\Songs\U2

这是由于我的字符串中的空格造成的。这意味着我需要在整个字符串周围使用引号...就像在 cmd 中一样

start "C:\Users\me\Desktop\Personal\Songs\U2 - Beautiful Day.mp3"

所以我的问题的第一部分是,如何将这些引号添加到我的字符串中?

接下来,当我实际在命令提示符中运行最后一个命令时,它所做的只是打开命令提示符的另一个实例。那么,我是否使用了错误的命令在默认程序中打开文件?如果是这样,我应该使用哪个命令?

最佳答案

试试这个:

os.startfile(r'C:\Users\me\Desktop\Personal\Songs\U2 - Beautiful Day.mp3')

这就像在资源管理器中双击文件并运行文件扩展名的默认程序。还要注意字符串开头的 r。这是一个“原始”字符串,反斜杠不会被处理为转义码。

但是为了回答你的问题,Python 可以使用单引号和双引号来创建字符串,因此如果你想要嵌入双引号,你可以使用单引号来引用字符串。

os.system('start "'+that_string+'"')

关于python - 如何转义特殊字符并在命令提示符下运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20795087/

相关文章:

python - argparse 参数可以是 str 或 int 以及处理它的最简单方法

Python 字符串列表到字符串

python - 从 TCP 连接串行创建假 TTY 设备

python - 从字符串列中提取数字

python - 如何在 SymPy 中获得等式的两边?

Python - 在 PyQt5 中循环创建按钮

python - 如何连接多个 pandas.DataFrames 而不会遇到 MemoryError

python - 如何从元组中删除 u' 和 '

python - PyWin32 和 Python 3.8.0

python - 3D matplotlib中的旋转轴标签文本