Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这个三重引用解决方案可以修复路径错误?_Python_Path_Escaping_Parentheses_Os.system - Fatal编程技术网

Python 为什么这个三重引用解决方案可以修复路径错误?

Python 为什么这个三重引用解决方案可以修复路径错误?,python,path,escaping,parentheses,os.system,Python,Path,Escaping,Parentheses,Os.system,所以我今天遇到了一个问题,这段代码: os.system("C:\Program Files (x86)\DOSBox-0.72\dosbox.exe") 执行时,我会收到以下错误消息: 'C:\Program' is not recognized as an internal or external command, operable program or batch file. 我认为这与空格或括号有关,所以我在网上做了一些挖掘,在无数涉及转义字符的无效“解决方案”之后,我最终找到了一个

所以我今天遇到了一个问题,这段代码:

os.system("C:\Program Files (x86)\DOSBox-0.72\dosbox.exe")
执行时,我会收到以下错误消息:

'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
我认为这与空格或括号有关,所以我在网上做了一些挖掘,在无数涉及转义字符的无效“解决方案”之后,我最终找到了一个相当奇怪的解决方案;用另一个双引号和一个单引号将双引号括起来,如下所示:

os.system('""C:\Program Files (x86)\DOSBox-0.72\dosbox.exe""')
我不明白为什么会这样,我想这并不奇怪,因为我缺乏python知识。我在网上搜索,想知道为什么会这样,但没有结果

所以我想问题是,为什么加上这些引号就能解决这个问题

我对Python和一般编程非常陌生,所以我非常希望能用外行的术语解释任何答案

提前谢谢


编辑:我不会说这个问题是链接问题的重复,我不是在寻找问题的解决方案,我已经有了一个。我很好奇它为什么会工作,它背后的逻辑,所以我可以更好地理解python的工作方式。

显然这是一个尚未解决的python怪癖。我只需要在python2.7和windows 7上使用
r'“c:\program files\fio\fio”
(不同的程序,但问题相同)。外部的
告诉python它是一个字符串,内部的
告诉windows shell整个字符串(包括空格)是文件名。我很确定问题在于程序文件(x86)中的括号,这样@tdelaney就不会有问题了。我想当你在os.system上附加了一个字符串中的特殊字符时,你会收到这个错误消息,至少我收集到了这个消息。我使用的是python 2.7和windows 8。实际上,没关系,
os.system(r''C:\Program Files(x86)\…')
也起作用。@Polaris如果你添加参数,它不会起作用,请阅读我链接的问题。