原文地址?https://www.cyberlight.xyz/passage/absolute-path
記錄我在Python中使用 相對路徑 和 絕對路徑 遇到的一些問題。(筆記以Windows為例,同樣適用于 Linux 和 Mac OS)
環(huán)境:Windows 10, Python 3.8.1
一、概念及作用
絕對路徑指?完整的描述文件位置的路徑。
如,Windows下創(chuàng)建文件 test.txt,它的絕對路徑為?D:\study\Python\Python_test\test.txt ,如圖

使用絕對路徑能精準定位文件在系統(tǒng)的位置,編程時能準確調用文件。
相對路徑指?由這個文件所在的路徑引起的跟其它文件(或文件夾)的路徑關系。 程序中?即 '文件以主程序所在目錄為起點,該目錄之后的文件路徑'。
我們繼續(xù)創(chuàng)建一個py主程序,它的絕對路徑為?D:\study\Python\test.py ,如下圖

若需要通過 D:\study\Python\test.py?打開上一步創(chuàng)建的 D:\study\Python\Python_test\test.txt ,可通過相對路徑打開,test.txt 相對于 test.py?的路徑為?Python_test\test.txt【注意不是\Python_test\test.txt,\Python_test\test.txt?代表系統(tǒng)根目錄下的該路徑(即?絕對路徑)】?,即為 test.txt?以? test.py?所在目錄為起點 的相對路徑。
實際編程中,我們往往需要程序擁有更強的可移植性。使用絕對路徑可能導致 '遷徙系統(tǒng)后,原路徑失效'。這時需要使用相對路徑,保證項目目錄內的 子目錄 或 文件 相對位置的不變。
二、在Python3中使用絕對路徑和相對路徑
打開第一步所建的?D:\study\Python\Python_test\test.txt,加入如下內容(后文測試打開),如圖

繼續(xù)編輯?D:\study\Python\test.py ,欲通過?D:\study\Python\test.py?打開?D:\study\Python\Python_test\test.txt?中的內容。
1.使用絕對路徑打開
D:\study\Python\test.py 源碼如下
text = open("D:\\study\\Python\\Python_test\\test.txt").read()
print(text)
該程序的輸出如下圖

成功讀取?D:\study\Python\Python_test\test.txt?中的內容了~
您可能好奇,為什么Python中讀取路徑為?D:\\study\\Python\\Python_test\\test.txt ,而不是?D:\study\Python\Python_test\test.txt 。Windows中以反斜杠(\)為路徑分隔,而在Python中用反斜杠(\)轉義字符,若輸入反斜杠(\)將報錯。python字符串中,我們使用雙反斜杠(\\)表示反斜杠(\)?!居?Linux 和 Mac OS 的朋友不必在意這點,這些環(huán)境中以斜杠(/)為路徑分隔】
2.使用相對路徑打開
D:\study\Python\test.py 源碼如下
text = open("Python_test\\test.txt").read()
print(text)
該程序的輸出如下圖

PS:Python以相對路徑調用文件 可理解為 命令窗口的 cd?命令,熟悉 cd 命令 能更好使用Python相對路徑。
以上是這篇筆記的全部內容,感謝閱讀!