在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調(diào)用程序路徑中包空格,及包含特殊字符
解決辦法
import os s = r'"C:\Program Files\Google\Chrome\Application\chrome.exe"' print(s) os.system(s)
也就是在調(diào)用的路徑中如果包含空格,需要將調(diào)用的路徑用" 引起來
擴展知識
1.windows平臺這里只能用 雙引號,cmd不能識別單引號包含的路徑 ,linux即可以用雙引號也可以用單引號,但只要有路徑中包含空格就需要用雙引號包裹住
2.為什么前面的程序去掉 r 也能運行?
首先要明白 r表示什么意思,r在python字符串中表示原始字符,也就是你字符串中寫的是什么就是什么,不經(jīng)過轉(zhuǎn)義,例如
print(r"\\\\")
print("\\\\")
print("\"")
print(r"\"")
輸出:
\\\\
\\
"
\"
- 第一種因為用r表示原始字符串所以,所以都不轉(zhuǎn)義
- 第二中轉(zhuǎn)義兩個
\\ - 第三種可能大部分人不知道還有這種寫法(或者不常用),一般如果要輸出
"就用'包裹起來就行了,但是其實是可以轉(zhuǎn)義輸出出來的 - 第四種同理
轉(zhuǎn)義的作用其實主要是為了 與python內(nèi)置的語法與 你聲明的字符串中包含的字符區(qū)分開來
回歸問題,為什么去掉r 也能運行,原因就很明顯了,因為 路徑中沒有與python 內(nèi)置語法相同的字符,例如如果路徑中包含雙引號,或者路徑首字母為 u (\u Unicode與中文互轉(zhuǎn) )等等,這類路徑就必須加 r ,所以前面加上r是最保險的
其實導致問題怎么復雜的主要原因在于
在windows上的路徑分割很奇葩與轉(zhuǎn)義字符的語法一樣為\,在linux上路徑分割是/, 所以linux 幾乎沒有調(diào)用路徑的問題,另外很多編程語言轉(zhuǎn)義字符都是\ ,或許這也是為什么編程習慣于用linux 原因吧
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python輸出漢字字庫及將文字轉(zhuǎn)換為圖片的方法
這篇文章主要介紹了Python輸出漢字字庫及將文字轉(zhuǎn)換為圖片的方法,分別用到了codecs模塊和pygame模塊,需要的朋友可以參考下2016-06-06
Python?Prometheus接口揭秘數(shù)據(jù)科學新技巧
本篇文章將分享Prometheus?API的基本概念到PromQL查詢語言的應用,再到如何通過Python與Prometheus?API進行無縫交互,通過豐富的示例代碼和詳細的講解,將解鎖使用Python進行實時監(jiān)控的奇妙世界,為讀者打開更廣闊的數(shù)據(jù)分析視野2024-01-01
一文詳解如何使用Python SDK在Collection中進行相似性檢索
這篇文章主要為大家詳細介紹了如何通過Python SDK在Collection中按分組進行相似性檢索,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下2025-10-10
OpenCV3.0+Python3.6實現(xiàn)特定顏色的物體追蹤
這篇文章主要為大家詳細介紹了OpenCV3.0+Python3.6實現(xiàn)特定顏色的物體追蹤,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
django開發(fā)之settings.py中變量的全局引用詳解
當網(wǎng)站里面的一些內(nèi)容,如郵箱,網(wǎng)站標題,網(wǎng)站的描述,這些東西我們可以存在數(shù)據(jù)庫中也可以存放在我們的setting 文件中,這篇文章主要給大家介紹了django中settings.py變量的全局引用的相關資料,文中介紹的非常詳細,需要的朋友可以參考下。2017-03-03

