Python在Windows環(huán)境下的文件路徑問(wèn)題及解決辦法
在 Python 程序中,我們經(jīng)常需要對(duì)文件進(jìn)行操作。在 Windows 下,文件目錄路徑使用反斜杠“\”來(lái)分隔。然而,在 Python 代碼中,反斜杠“\”是轉(zhuǎn)義符,例如“\n”表示換行符、“\t”表示制表符。這樣,如果繼續(xù)使用“\”表示文件路徑,就會(huì)產(chǎn)生歧義。
示例問(wèn)題
例如:
path = "c:\test.txt"
這個(gè)路徑表示的是 C 盤根目錄下的一個(gè)文件,還是表示一個(gè)字符串呢?因?yàn)?ldquo;\t”也可以解釋為制表符。如果讓我們?nèi)藖?lái)判斷,這當(dāng)然是一個(gè)很簡(jiǎn)單的問(wèn)題。但是機(jī)器無(wú)法做出正確的判斷,只有沒(méi)有歧義的代碼機(jī)器才會(huì)正確執(zhí)行。
解決辦法
采用下面任何一種書寫形式均可:
- 使用斜杠“/” (推薦)
path = "c:/test.txt"
這樣就沒(méi)有歧義了。
- 將反斜杠符號(hào)轉(zhuǎn)義
path = "c:\\test.txt"
因?yàn)榉葱备苁寝D(zhuǎn)義符,所以兩個(gè)“\”表示一個(gè)反斜杠符號(hào)。
- 使用 Python 的 raw string
path = r"c:\test.txt"
在字符串前面加上字母“r”,表示后面是一個(gè)原始字符串(raw string)。不過(guò) raw string 主要是為正則表達(dá)式設(shè)計(jì)的,而不是 Windows 路徑,所以這種做法盡量少用,可能會(huì)出問(wèn)題。
知識(shí)拓展:python讀取文件路徑的三種解決方法
一、問(wèn)題需求
日常用程序讀取文件數(shù)據(jù)等時(shí),常常會(huì)顯示一些諸如文件路徑不存在等錯(cuò)誤信息。
二、問(wèn)題原因
這類問(wèn)題,在python中,主要是由于 “\”(反斜杠) 引起的。
因?yàn)樵赪indows系統(tǒng)中,使用 反斜杠(\) 作為文件路徑的分隔符,但在python中,反斜杠(\) 會(huì)被標(biāo)識(shí)為轉(zhuǎn)義字符引起的。從而導(dǎo)致的程序報(bào)錯(cuò)。
三、解決辦法
針對(duì)上述問(wèn)題,常用的解決方法有如下三種。
以windows中的文件路徑:“E:\CloudMusic\MV\demo.txt” 為例。
- 方法1 將路徑中的單反斜杠替換為雙反斜杠。如下所示:
“E:\CloudMusic\MV\demo.txt”
- 方法2 在路徑前加r,使字符保持原始含義。 如下所示:
r"E:\CloudMusic\MV\demo.txt"
- 方法3 將反斜杠替換為正斜杠(/)。如下所示:
“E:/CloudMusic/MV/demo.txt”
根據(jù)自己的習(xí)慣,選擇調(diào)整即可。
四、小思
不同的系統(tǒng)或者語(yǔ)言,某些操作或字符難免會(huì)有些特殊的含義,注意留心總結(jié),即可避免很多小錯(cuò)誤。
到此這篇關(guān)于Python在Windows環(huán)境下的文件路徑問(wèn)題及解決辦法的文章就介紹到這了,更多相關(guān)Python Windows文件路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)的字典排序操作示例【按鍵名key與鍵值value排序】
這篇文章主要介紹了Python實(shí)現(xiàn)的字典排序操作,結(jié)合實(shí)例形式分析了Python針對(duì)字典分別按照鍵名key與鍵值value進(jìn)行排序的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12基于Python實(shí)現(xiàn)定時(shí)自動(dòng)給微信好友發(fā)送天氣預(yù)報(bào)
這篇文章主要介紹了基于Python實(shí)現(xiàn)定時(shí)自動(dòng)給微信好友發(fā)送天氣預(yù)報(bào)的實(shí)現(xiàn)代碼,,需要的朋友可以參考下2018-10-10