在 Python 中獲取當前檔案的路徑

Manav Narula 2023年1月30日 2021年2月7日
  1. 使用 pathlib 模組獲取檔案路徑和當前工作目錄的方法
  2. 使用 os 模組獲取檔案路徑和當前工作目錄
在 Python 中獲取當前檔案的路徑

在 Python 中,我們可以處理許多檔案和模組,並不斷與檔案系統互動。要匯入或匯出檔案,我們需要知道這些檔案的正確路徑和目錄,否則就會出現錯誤。知道當前正在執行的 Python 指令碼的路徑或其他一些檔案的路徑也是必不可少的。

當前的工作目錄就是我們當前正在工作的 Python 的目錄。

本教程將介紹如何在 Python 中獲取當前檔案和當前工作目錄的完整路徑和目錄。

使用 pathlib 模組獲取檔案路徑和當前工作目錄的方法

pathlib 庫適用於 Python 3.x 及以上版本,它包含了處理檔案路徑相關問題的類、方法。

在下面的程式碼中,我們將使用 pathlib 模組提供的函式提取一個 Python 指令碼的路徑。

import pathlib

print(pathlib.Path(__file__).parent.absolute())

輸出:

C:\Sample\Python

absolute() 方法返回檔案的完整路徑,parent() 函式從這個路徑中檢索檔案的目錄。

為了得到當前的工作目錄,我們將上述函式中的檔名去掉。下面的程式碼展示瞭如何操作。

import pathlib
print(pathlib.Path().absolute())

輸出:

C:\Sample\Python

使用 os 模組獲取檔案路徑和當前工作目錄

os 庫是用來與作業系統互動的,它有函式可以檢索檔案的完整路徑。這種方法在 Python 2.x 中也可以使用。

abspath() 函式可以得到所需檔案的路徑,dirname() 函式從完整路徑中得到目錄。

例如:

import os

print(os.path.dirname(os.path.abspath(__file__)))

輸出:

C:\Sample\Python

我們不能直接使用 dirname() 函式來獲取檔案的目錄,因為它返回的是一個空字串。

我們也可以使用 realpath() 函式來替代 abspath() 函式。如果路徑中存在符號連結,它就會將其刪除。

import os

print(os.path.dirname(os.path.realpath(__file__)))

輸出:

C:\Sample\Python

為了得到當前的工作目錄,我們可以使用 getcwd() 函式來返回當前的目錄路徑。我們可以將這個路徑傳遞給 dirname() 函式來獲取目錄。

例如:

import os
print(os.path.abspath(os.getcwd()))

輸出:

C:\Sample\Python
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python Path