python呼叫程式路徑中包空格,及包含特殊字元問題

ckxllf發表於2019-12-05

  解決辦法

  import os

  s = r'"C:\Program Files\Google\Chrome\Application\chrome.exe"'

  print(s)

  os.system(s)

  也就是在呼叫的路徑中如果包含空格,需要將呼叫的路徑用" 引起來

  擴充套件知識

  1.windows平臺這裡只能用 雙引號,cmd不能識別單引號包含的路徑 ,linux即可以用雙引號也可以用單引號,但只要有路徑中包含空格就需要用雙引號包裹住

  2.為什麼前面的程式去掉 r 也能執行?

  首先要明白 r表示什麼意思,r在python字串中表示原始字元,也就是你字串中寫的是什麼就是什麼,不經過轉義,例如

  print(r"\\\\")

  print("\\\\")

  print("\"")

  print(r"\"")

  輸出:

  \\\\

  \\

  "

  \" 鄭州婦科醫院哪家好

  第一種因為用r表示原始字串所以,所以都不轉義

  第二中轉義兩個 \\

  第三種可能大部分人不知道還有這種寫法(或者不常用),一般如果要輸出 " 就用 '包裹起來就行了,但是其實是可以轉義輸出出來的

  第四種同理

  轉義的作用其實主要是為了 與python內建的語法與 你宣告的字串中包含的字元區分開來

  迴歸問題,為什麼去掉r 也能執行,原因就很明顯了,因為 路徑中沒有與python 內建語法相同的字元,例如如果路徑中包含雙引號,或者路徑首字母為 u (\u Unicode與中文互轉 )等等,這類路徑就必須加 r ,所以前面加上r是最保險的

  其實導致問題怎麼複雜的主要原因在於

  在windows上的路徑分割很奇葩與跳脫字元的語法一樣為\,在linux上路徑分割是/, 所以linux 幾乎沒有呼叫路徑的問題,另外很多程式語言跳脫字元都是\ ,或許這也是為什麼程式設計習慣於用linux 原因吧


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2667020/,如需轉載,請註明出處,否則將追究法律責任。

相關文章