python调用程序路径中包空格,及包含特殊字符问题

  

解决办法

  

import操作系统   

s=" # 39;“C: \ Program Files \谷歌Chrome \程序\ \ chrome.exe" & # 39;

  

打印(s)

  

os.system (s)

  

也就是在调用的路径中如果包含空格,需要将调用的路径用“;引起来

  

扩展知识

  

1。windows平台这里只能用双引号,cmd不能识别单引号包含的路径   ,linux即可以用双引号也可以用单引号,但只要有路径中包含空格就需要用双引号包裹住

  

2。为什么前面的程序去掉r也能运行吗?

  

首先要明白r表示什么意思,r在python字符串中表示原始字符,也就是你字符串中写的是什么就是什么,不经过转义,例如

  

打印(r" \ \ \ \“)

  

打印(“\ \ \ \“)

  

打印(“\““)

  

打印(r" \““)

  

输出:   

\ \ \ \

  

\ \   

,

  

\“;   

  

第一种因为用r表示原始字符串所以,所以都不转义

  

第二中转义两个\ \

  

第三种可能大部分人不知道还有这种写法(或者不常用),一般如果要输出“就用& # 39;包裹起来就行了,但是其实是可以转义输出出来的

  

第四种同理

  

转义的作用其实主要是为了与python内置的语法与你声明的字符串中包含的字符区分开来

  

回归问题,为什么去掉r也能运行,原因就很明显了,因为路径中没有与python内置语法相同的字符,例如如果路径中包含双引号,或者路径首字母为u   (\ u Unicode与中文互转)等等,这类路径就必须加r,所以前面加上r是最保险的

  

其实导致问题怎么复杂的主要原因在于

  

在windows上的路径分割很奇葩与转义字符的语法一样为\,在linux上路径分割是/,所以linux   几乎没有调用路径的问题,另外很多编程语言转义字符都是\,或许这也是为什么编程习惯于用linux原因吧

python调用程序路径中包空格,及包含特殊字符问题