Python 提取文件名

Python 提取文件名

Python 提取文件名

1. 简介

在日常的编程任务中,经常需要从文件路径中提取文件名。例如,当我们需要读取某个文件或者对文件进行操作时,我们通常需要获取文件的名称以进行相应的操作。Python 提供了多种方法来提取文件名,本文将详细介绍这些方法。

2. 使用 os 模块提取文件名

Python 的内置模块 os 提供了一些用于操作文件和目录路径的函数和方法。其中,有一个函数 os.path.basename(path) 可以用于提取文件名。以下是使用该函数实现文件名提取的示例代码:

import os

# 定义文件路径
file_path = "/home/user/Documents/example.txt"

# 使用 os.path.basename() 提取文件名
file_name = os.path.basename(file_path)

# 打印提取的文件名
print("提取的文件名:", file_name)
Python

代码运行结果:

提取的文件名: example.txt
Plaintext

在上述代码中,我们首先导入了 os 模块,然后定义了一个文件路径 file_path。接下来,我们使用 os.path.basename() 函数提取文件名,并将结果赋值给变量 file_name。最后,我们打印出了提取的文件名。

注意,os.path.basename(path) 函数只会提取路径中的文件名,不包括文件的目录部分。如果需要提取文件的完整路径,可以使用 os.path.abspath(path) 函数。

3. 使用 pathlib 模块提取文件名

Python 3.4 版本以后引入了 pathlib 模块,该模块提供了一种更简洁、面向对象的方式来操作文件和目录路径。在 pathlib 模块中,Path 类提供了一个用于处理路径的对象,其中包含了一些方便的方法。下面是使用 pathlib 模块提取文件名的示例代码:

from pathlib import Path

# 定义文件路径
file_path = Path("/home/user/Documents/example.txt")

# 使用 Path 类的 name 属性提取文件名
file_name = file_path.name

# 打印提取的文件名
print("提取的文件名:", file_name)
Python

代码运行结果:

提取的文件名: example.txt
Plaintext

在上述代码中,我们首先从 pathlib 模块中导入了 Path 类,然后使用该类创建了一个 Path 对象,指定了文件路径 file_path。接下来,我们使用 Path 类的 name 属性提取文件名,并将结果赋值给变量 file_name。最后,我们打印出了提取的文件名。

值得注意的是,Path 类的 name 属性与 os.path.basename() 函数具有相同的功能,都只会提取文件名。如果需要提取文件的完整路径,可以使用 Path 类的 resolve() 方法。

4. 使用 split 方法提取文件名

Python 的字符串类型提供了 split() 方法,该方法可以根据指定的分隔符将字符串分割成多个部分,并返回一个列表。我们可以使用 split 方法来提取文件名。

下面是使用 split 方法提取文件名的示例代码:

# 定义文件路径
file_path = "/home/user/Documents/example.txt"

# 使用 split 方法提取文件名
file_name = file_path.split("/")[-1]

# 打印提取的文件名
print("提取的文件名:", file_name)
Python

代码运行结果:

提取的文件名: example.txt
Plaintext

在上述代码中,我们首先定义了一个文件路径 file_path,然后使用 split("/") 方法将文件路径按照斜杠字符分割成多个部分,并得到一个列表。由于文件名位于路径的最后一个部分,我们可以通过索引 -1 来获取该部分,即文件名。最后,我们打印出了提取的文件名。

需要注意的是,如果文件路径中使用的是反斜杠字符 \,则需要将 split() 方法的分隔符改为双反斜杠 \\。例如,file_path.split("\\")[-1]

5. 使用正则表达式提取文件名

如果文件名的格式具有一定的规律,我们还可以使用正则表达式来提取文件名。Python 的 re 模块提供了支持正则表达式的函数和方法。以下是使用正则表达式提取文件名的示例代码:

import re

# 定义文件路径
file_path = "/home/user/Documents/example.txt"

# 使用正则表达式提取文件名
file_name = re.search(r"[^/\\]+$", file_path).group()

# 打印提取的文件名
print("提取的文件名:", file_name)
Python

代码运行结果:

提取的文件名: example.txt
Plaintext

在上述代码中,我们首先导入了 re 模块,然后定义了一个文件路径 file_path。接下来,我们使用 re.search(pattern, string) 函数来从文件路径中搜索满足指定模式的部分。其中,正则表达式 [^/\\]+$ 表示匹配除了斜杠 / 和反斜杠 \ 之外的字符,并且该字符的出现次数为一次或多次,即匹配文件名。最后,我们使用 group() 方法获取匹配的结果,即文件名,并将结果赋值给变量 file_name。最终,我们打印出了提取的文件名。

6. 总结

本文详细介绍了使用 Python 提取文件名的几种方法,分别使用了 os.path.basename() 函数、pathlib 模块、字符串的 split() 方法以及正则表达式。根据实际需求和个人喜好,可以选择合适的方法来提取文件名。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册