欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在python中路徑含有空格的問(wèn)題及解決

 更新時(shí)間:2024年02月06日 15:56:59   作者:Deme2020  
這篇文章主要介紹了在python中路徑含有空格的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在python中路徑含有空格的解決

Application.filename=tkinter.filedialog.askopenfilename(filetypes=[('docx|doc格式','*.docx;*.doc')])  #獲取的docx文件路徑

通過(guò)函數(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 + '\\\\' #此處無(wú)法使用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)用的路徑用" 引起來(lái)

擴(kuò)展知識(shí)

1.windows平臺(tái)這里只能用 雙引號(hào)cmd不能識(shí)別單引號(hào)包含的路徑 ,linux即可以用雙引號(hào)也可以用單引號(hào),但只要有路徑中包含空格就需要用雙引號(hào)包裹住

2.為什么前面的程序去掉 r 也能運(yùn)行?

首先要明白 r表示什么意思,r在python字符串中表示原始字符,也就是你字符串中寫(xiě)的是什么就是什么,不經(jīng)過(guò)轉(zhuǎn)義,例如

print(r"\\\\")
print("\\\\")
print("\"")
print(r"\"")

輸出:

\\\\
\\
"
\"

  • 第一種因?yàn)橛胷表示原始字符串所以,所以都不轉(zhuǎn)義
  • 第二中轉(zhuǎn)義兩個(gè) \\
  • 第三種可能大部分人不知道還有這種寫(xiě)法(或者不常用),一般如果要輸出 " 就用 '包裹起來(lái)就行了,但是其實(shí)是可以轉(zhuǎn)義輸出出來(lái)的
  • 第四種同理

轉(zhuǎn)義的作用其實(shí)主要是為了 與python內(nèi)置的語(yǔ)法與 你聲明的字符串中包含的字符區(qū)分開(kāi)來(lái)

回歸問(wèn)題,為什么去掉r 也能運(yùn)行,原因就很明顯了,因?yàn)?路徑中沒(méi)有與python 內(nèi)置語(yǔ)法相同的字符,例如如果路徑中包含雙引號(hào),或者路徑首字母為 u (\u Unicode與中文互轉(zhuǎn) )等等,這類(lèi)路徑就必須加 r ,所以前面加上r是最保險(xiǎn)的

其實(shí)導(dǎo)致問(wèn)題怎么復(fù)雜的主要原因在于

在windows上的路徑分割很奇葩與轉(zhuǎn)義字符的語(yǔ)法一樣為\,在linux上路徑分割是/, 所以linux 幾乎沒(méi)有調(diào)用路徑的問(wèn)題,另外很多編程語(yǔ)言轉(zhuǎn)義字符都是\ ,或許這也是為什么編程習(xí)慣于用linux 原因吧

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論