原文地址?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)容,感謝閱讀!