在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_test1
python調(diào)用程序路徑中包空格,及包含特殊字符
解決辦法
import os s = r'"C:\Program Files\Google\Chrome\Application\chrome.exe"' print(s) os.system(s)
也就是在調(diào)用的路徑中如果包含空格,需要將調(diào)用的路徑用"
引起來
擴(kuò)展知識
1.windows平臺(tái)這里只能用 雙引號
,cmd
不能識別單引號包含的路徑 ,linux即可以用雙引號也可以用單引號,但只要有路徑中包含空格就需要用雙引號包裹住
2.為什么前面的程序去掉 r
也能運(yùn)行?
首先要明白 r
表示什么意思,r
在python字符串中表示原始字符,也就是你字符串中寫的是什么就是什么,不經(jīng)過轉(zhuǎn)義,例如
print(r"\\\\") print("\\\\") print("\"") print(r"\"")
輸出:
\\\\
\\
"
\"
- 第一種因?yàn)橛胷表示原始字符串所以,所以都不轉(zhuǎn)義
- 第二中轉(zhuǎn)義兩個(gè)
\\
- 第三種可能大部分人不知道還有這種寫法(或者不常用),一般如果要輸出
"
就用'
包裹起來就行了,但是其實(shí)是可以轉(zhuǎn)義輸出出來的 - 第四種同理
轉(zhuǎn)義的作用其實(shí)主要是為了 與python內(nèi)置的語法與 你聲明的字符串中包含的字符區(qū)分開來
回歸問題,為什么去掉r
也能運(yùn)行,原因就很明顯了,因?yàn)?路徑中沒有與python 內(nèi)置語法相同的字符,例如如果路徑中包含雙引號,或者路徑首字母為 u (\u Unicode與中文互轉(zhuǎn) )等等,這類路徑就必須加 r
,所以前面加上r
是最保險(xiǎn)的
其實(shí)導(dǎo)致問題怎么復(fù)雜的主要原因在于
在windows上的路徑分割很奇葩與轉(zhuǎn)義字符的語法一樣為\
,在linux上路徑分割是/
, 所以linux 幾乎沒有調(diào)用路徑的問題,另外很多編程語言轉(zhuǎn)義字符都是\
,或許這也是為什么編程習(xí)慣于用linux 原因吧
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python plt.boxplot函數(shù)及其參數(shù)使用小結(jié)
plt.boxplot函數(shù)用于繪制箱線圖,本文介紹了Python plt.boxplot函數(shù)及其參數(shù)使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02Python通過Django實(shí)現(xiàn)用戶注冊和郵箱驗(yàn)證功能代碼
這篇文章主要介紹了Python通過Django實(shí)現(xiàn)用戶注冊和郵箱驗(yàn)證功能代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12python類參數(shù)定義及數(shù)據(jù)擴(kuò)展方式unsqueeze/expand
本文主要介紹了python類參數(shù)定義及數(shù)據(jù)擴(kuò)展方式unsqueeze/expand,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08python編寫網(wǎng)頁爬蟲腳本并實(shí)現(xiàn)APScheduler調(diào)度
爬蟲爬的頁面是京東的電子書網(wǎng)站頁面,每天會(huì)更新一些免費(fèi)的電子書,爬蟲會(huì)把每天更新的免費(fèi)的書名以第一時(shí)間通過郵件發(fā)給我,通知我去下載2014-07-07Python?functools凍結(jié)參數(shù)小技巧實(shí)現(xiàn)代碼簡潔優(yōu)化
這篇文章主要為大家介紹了Python?functools凍結(jié)參數(shù)小技巧實(shí)現(xiàn)代碼簡潔優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12基于Python+OpenCV實(shí)現(xiàn)自動(dòng)掃雷功能
相信許多人很早就知道有掃雷這么一款經(jīng)典的游(顯卡測試)戲(軟件),掃雷作為一款在Windows9x時(shí)代就已經(jīng)誕生的經(jīng)典游戲,從過去到現(xiàn)在依然都有著它獨(dú)特的魅力,所以本文小編給大家介紹了如何使用Python+OpenCV實(shí)現(xiàn)自動(dòng)掃雷效果,感興趣的朋友可以參考下2023-12-12