Python 中的相對路徑

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  1. Python 中的檔案路徑
  2. 絕對路徑
  3. 相對路徑
Python 中的相對路徑

在本教程中,我們將討論 Python 中的相對路徑。

Python 中的檔案路徑

檔案路徑指定檔案在計算機中的位置。例如,C:\PythonProjects\Tutorials\Paths 是 Windows 計算機中檔案 paths.py 的路徑。在這裡,C:\是根目錄,而 PythonProjectsTutorialsPaths 是子目錄。paths.py 是在根目錄 C:\內的 Paths 目錄內的 Tutorials 目錄內的 PythonProjects 目錄內的一個 python 指令碼。Python 中有兩種型別的檔案路徑,即絕對路徑和相對路徑。

Windows、Mac 和 Linux 之間的區別

在 Windows 計算機中,\用作目錄名稱之間的分隔符,而在 Linux 和 Mac 計算機中,/用作分隔符。例如,

#file path in Windows
rootdirectory\\subdirectory\\subsubdirectory\\filename.extension
#file path in Mac and Linux
rootdirectory/subdirectory/subsubdirectory/filename.extension

在 Windows 中,有兩個反斜槓,因為每個反斜槓都需要使用另一個反斜槓進行轉義。這可以通過使用 os.path.join() 方法進行管理。此方法根據作業系統處理分隔符。例如,

import os
pathname = os.path.join("root", "directory1", "directory2")
print(pathname)

輸出:

#On Windows
root\directory1\directory2
#On Mac and Linux
root/directory1/directory2

本教程將包含\作為分隔符,以在 Windows 中給出示例。我們將使用以下檔案層次結構,並將 C:\PythonProjects\Tutorials\Paths 設定為當前工作目錄。

檔案系統示例

當前工作目錄

當前的工作目錄或簡稱為 cwd 是從中執行程式的目錄。你可以通過 os.getcwd() 方法獲取特定檔案的當前工作目錄。

import os
print(os.getcwd())

輸出:

C:\PythonProjects\Tutorials\Paths

當前的工作目錄也可以在執行時使用 os.chdir() 方法進行更改。

import os
print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials")
print("New cwd = " + os.getcwd())

輸出:

Old cwd = C:\PythonProjects\Tutorials\Paths
New cwd = C:\PythonProjects\Tutorials

絕對路徑

檔案的絕對路徑是從根目錄到該特定檔案的完整路徑。例如,C:\PythonProjects\Tutorials\Paths\paths.pypaths.py 檔案的絕對路徑。

我們可以獲取當前檔案的絕對路徑,如下所示。

import os
absolutepath = os.path.abspath(__file__)
print(absolutepath)

輸出:

C:\PythonProjects\Tutorials\Paths\paths.py

使用 Python 中的絕對路徑導航到 Strings 目錄

使用 Python 中的絕對路徑導航到資料夾非常容易。唯一令人頭疼的是,你必須從根目錄中知道所有目錄的確切名稱。

import os
print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials\\Strings")
print("New cwd = " + os.getcwd())

相對路徑

絕對路徑是有用的,但很快就會變得複雜。因此,為了使這種複雜性最小化,使用了相對路徑。相對路徑是指某個檔案相對於當前工作目錄的路徑。

例如,如果當前工作目錄為 C:\PythonProjects\Tutorials,則 path.py 檔案的相對路徑將為\Paths\paths.py,這比絕對路徑 C:\PythonProjects\Tutorials\Paths\paths.py 更短,更容易使用。

檔案的絕對路徑在任何地方都相同,但是相對路徑根據當前工作目錄而變化。在下面的編碼示例中說明了這種現象。

使用 Python 中的相對路徑導航到 Strings 目錄

如果需要訪問 Strings 資料夾中的檔案,則必須使用完整的絕對路徑 C:\PythonProjects\Tutorials\Strings\string.py,也可以按照以下程式碼中的說明進行操作。

import os
import sys

absolutepath = os.path.abspath(__file__)
print(absolutepath)

fileDirectory = os.path.dirname(absolutepath)
print(fileDirectory)
#Path of parent directory
parentDirectory = os.path.dirname(fileDirectory)
print(parentDirectory)
#Navigate to Strings directory
newPath = os.path.join(parentDirectory, 'Strings')   
print(newPath)

輸出:

C:\PythonProjects\Tutorials\Paths\paths.py
C:\PythonProjects\Tutorials\Paths
C:\PythonProjects\Tutorials
C:\PythonProjects\Tutorials\Strings
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Python Path