HOWTO · Python

如何在 Python 中從路徑獲取檔名

本教程將演示 Python 中如何從路徑中獲取檔名,不論是什麼操作環境下。

本教程介紹瞭如何在 Python 中從路徑中獲取檔名。它還列出了一些示例程式碼,以進一步演示與特定作業系統相關的概念。

使用 ntpath 庫從路徑中獲取檔名

定義路徑的方式可以是不同的。在 Windows 中,檔案的路徑可以使用反斜線或正斜線作為路徑分隔符。因此,ntpath 模組將適用於所有平臺上的所有路徑。

ntpath 庫支援一個函式是 basename。這個函式傳遞一個 path,執行後,ntpath.basename(path) 從給定的 path 中返回檔名。使用該方法的基本例子如下所示。

import ntpath

print(ntpath.basename("usr/temp/new/sample"))

輸出:

sample

使用 ntpath.basename() 從路徑中獲取檔名

這個庫同樣適用於 Linux。然而,在 Linux 中,檔名可能包含反斜槓。所以在 Linux 中,r'usr/xyz\python'總是指 usr 資料夾中的 xyz\python 檔案。

import ntpath

print(ntpath.basename("r'usr/xyz\python'"))

輸出:

xyz\python

它指的是 Windows 中 usr 資料夾下 xyz 子資料夾中的檔名 python。當一個路徑中同時使用後斜槓和前斜槓時,我們應該知道我們使用的是哪個平臺,否則,你可能無法正確解釋路徑。

還有一種方法可以從路徑中獲取檔名,即 os.path.basename()

Python 使用 os.path.basename() 從路徑中獲取檔名

你也可以使用 os.path 庫提供的一個函式從路徑中獲取檔名。這個函式是 basename,用來獲取檔名。

basenamepath 為引數,返回 filename

以下是程式碼示例。

import os

print(os.path.basename("usr/temp/eng"))

輸出:

eng

如果系統是 POSIX,並且傳遞給 os.path.basename() 的是一個包含雙斜線的 windows 風格的路徑,那麼輸出將是給出的完整路徑。

# in Linux
import os

print(os.path.basename("E:\\aws\\temp.jpg"))

輸出:

E:\\aws\\temp.jpg

Python 使用 os.path.split() 從路徑獲取檔名

如果需要單獨的頭和尾,可以使用 os.path.split() 方法。該方法以 path 為引數,返回路徑的 headtail

下面是一個示例程式碼。

import os

head, tail = os.path.split("/Users/xyz/Downloads")
print(head)
print(tail)

輸出:

/Users/xyz
Downloads