原文地址?https://www.cyberlight.xyz/passage/absolute-path
記錄我在Python中使用 相對(duì)路徑 和 絕對(duì)路徑 遇到的一些問(wèn)題揖闸。(筆記以Windows為例,同樣適用于 Linux 和 Mac OS)
環(huán)境:Windows 10, Python 3.8.1
一料身、概念及作用
絕對(duì)路徑指?完整的描述文件位置的路徑汤纸。
如,Windows下創(chuàng)建文件 test.txt芹血,它的絕對(duì)路徑為?D:\study\Python\Python_test\test.txt 贮泞,如圖
使用絕對(duì)路徑能精準(zhǔn)定位文件在系統(tǒng)的位置,編程時(shí)能準(zhǔn)確調(diào)用文件幔烛。
相對(duì)路徑指?由這個(gè)文件所在的路徑引起的跟其它文件(或文件夾)的路徑關(guān)系啃擦。 程序中?即 '文件以主程序所在目錄為起點(diǎn),該目錄之后的文件路徑'饿悬。
我們繼續(xù)創(chuàng)建一個(gè)py主程序令蛉,它的絕對(duì)路徑為?D:\study\Python\test.py ,如下圖
若需要通過(guò) D:\study\Python\test.py?打開(kāi)上一步創(chuàng)建的 D:\study\Python\Python_test\test.txt 狡恬,可通過(guò)相對(duì)路徑打開(kāi)珠叔,test.txt 相對(duì)于 test.py?的路徑為?Python_test\test.txt【注意不是\Python_test\test.txt,\Python_test\test.txt?代表系統(tǒng)根目錄下的該路徑(即?絕對(duì)路徑)】?弟劲,即為 test.txt?以? test.py?所在目錄為起點(diǎn) 的相對(duì)路徑祷安。
實(shí)際編程中,我們往往需要程序擁有更強(qiáng)的可移植性函卒。使用絕對(duì)路徑可能導(dǎo)致 '遷徙系統(tǒng)后辆憔,原路徑失效'。這時(shí)需要使用相對(duì)路徑报嵌,保證項(xiàng)目目錄內(nèi)的 子目錄 或 文件 相對(duì)位置的不變虱咧。
二、在Python3中使用絕對(duì)路徑和相對(duì)路徑
打開(kāi)第一步所建的?D:\study\Python\Python_test\test.txt锚国,加入如下內(nèi)容(后文測(cè)試打開(kāi))腕巡,如圖
繼續(xù)編輯?D:\study\Python\test.py ,欲通過(guò)?D:\study\Python\test.py?打開(kāi)?D:\study\Python\Python_test\test.txt?中的內(nèi)容血筑。
1.使用絕對(duì)路徑打開(kāi)
D:\study\Python\test.py 源碼如下
text = open("D:\\study\\Python\\Python_test\\test.txt").read()
print(text)
該程序的輸出如下圖
成功讀取?D:\study\Python\Python_test\test.txt?中的內(nèi)容了~
您可能好奇绘沉,為什么Python中讀取路徑為?D:\\study\\Python\\Python_test\\test.txt ,而不是?D:\study\Python\Python_test\test.txt 豺总。Windows中以反斜杠(\)為路徑分隔车伞,而在Python中用反斜杠(\)轉(zhuǎn)義字符,若輸入反斜杠(\)將報(bào)錯(cuò)喻喳。python字符串中另玖,我們使用雙反斜杠(\\)表示反斜杠(\)。【用 Linux 和 Mac OS 的朋友不必在意這點(diǎn)谦去,這些環(huán)境中以斜杠(/)為路徑分隔】
2.使用相對(duì)路徑打開(kāi)
D:\study\Python\test.py 源碼如下
text = open("Python_test\\test.txt").read()
print(text)
該程序的輸出如下圖
PS:Python以相對(duì)路徑調(diào)用文件 可理解為 命令窗口的 cd?命令慷丽,熟悉 cd 命令 能更好使用Python相對(duì)路徑。
以上是這篇筆記的全部?jī)?nèi)容鳄哭,感謝閱讀要糊!