在python中路徑含有空格的問題及解決
在python中路徑含有空格的解決
Application.filename=tkinter.filedialog.askopenfilename(filetypes=[('docx|doc格式','*.docx;*.doc')]) #獲取的docx文件路徑通過函數(shù)tkinter.filedialog.askopenfilename()獲取的路徑使用/做分隔符
而word.Documents.Open(路徑)中的路徑使用\為分隔符
解決方法
s = Application.filename.split("/")#解決文件夾及文件路徑含有空格。原因是tkinter.filedialog.askopenfilename獲取的路徑(Application.filename)分隔符是/而日文系統(tǒng) \.
path_test = ''
for i in s:
path_test = path_test + i + '\\\\' #此處無法使用r'路徑格式'因此在上面 使用'\\\\'格式處理
path_test1 = path_test[0:-2]
path_test2 = path_test1python調用程序路徑中包空格,及包含特殊字符
解決辦法
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字符串中表示原始字符,也就是你字符串中寫的是什么就是什么,不經(jīng)過轉義,例如
print(r"\\\\")
print("\\\\")
print("\"")
print(r"\"")
輸出:
\\\\
\\
"
\"
- 第一種因為用r表示原始字符串所以,所以都不轉義
- 第二中轉義兩個
\\ - 第三種可能大部分人不知道還有這種寫法(或者不常用),一般如果要輸出
"就用'包裹起來就行了,但是其實是可以轉義輸出出來的 - 第四種同理
轉義的作用其實主要是為了 與python內置的語法與 你聲明的字符串中包含的字符區(qū)分開來
回歸問題,為什么去掉r 也能運行,原因就很明顯了,因為 路徑中沒有與python 內置語法相同的字符,例如如果路徑中包含雙引號,或者路徑首字母為 u (\u Unicode與中文互轉 )等等,這類路徑就必須加 r ,所以前面加上r是最保險的
其實導致問題怎么復雜的主要原因在于
在windows上的路徑分割很奇葩與轉義字符的語法一樣為\,在linux上路徑分割是/, 所以linux 幾乎沒有調用路徑的問題,另外很多編程語言轉義字符都是\ ,或許這也是為什么編程習慣于用linux 原因吧
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python plt.boxplot函數(shù)及其參數(shù)使用小結
plt.boxplot函數(shù)用于繪制箱線圖,本文介紹了Python plt.boxplot函數(shù)及其參數(shù)使用小結,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2024-02-02
Python通過Django實現(xiàn)用戶注冊和郵箱驗證功能代碼
這篇文章主要介紹了Python通過Django實現(xiàn)用戶注冊和郵箱驗證功能代碼,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12
python類參數(shù)定義及數(shù)據(jù)擴展方式unsqueeze/expand
本文主要介紹了python類參數(shù)定義及數(shù)據(jù)擴展方式unsqueeze/expand,文章通過圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08
python編寫網(wǎng)頁爬蟲腳本并實現(xiàn)APScheduler調度
爬蟲爬的頁面是京東的電子書網(wǎng)站頁面,每天會更新一些免費的電子書,爬蟲會把每天更新的免費的書名以第一時間通過郵件發(fā)給我,通知我去下載2014-07-07
Python?functools凍結參數(shù)小技巧實現(xiàn)代碼簡潔優(yōu)化
這篇文章主要為大家介紹了Python?functools凍結參數(shù)小技巧實現(xiàn)代碼簡潔優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12

