如何在 Python 中从路径获取文件名

Syed Moiz Haider 2023年1月30日 2020年11月7日
  1. 使用 ntpath 库从路径中获取文件名
  2. 使用 ntpath.basename() 从路径中获取文件名
  3. Python 使用 os.path.basename() 从路径中获取文件名
  4. Python 使用 os.path.split() 从路径获取文件名
如何在 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
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

相关文章 - Python Path