Python 提取文件名
1. 简介
在日常的编程任务中,经常需要从文件路径中提取文件名。例如,当我们需要读取某个文件或者对文件进行操作时,我们通常需要获取文件的名称以进行相应的操作。Python 提供了多种方法来提取文件名,本文将详细介绍这些方法。
2. 使用 os 模块提取文件名
Python 的内置模块 os
提供了一些用于操作文件和目录路径的函数和方法。其中,有一个函数 os.path.basename(path)
可以用于提取文件名。以下是使用该函数实现文件名提取的示例代码:
代码运行结果:
在上述代码中,我们首先导入了 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
模块提取文件名的示例代码:
代码运行结果:
在上述代码中,我们首先从 pathlib
模块中导入了 Path
类,然后使用该类创建了一个 Path
对象,指定了文件路径 file_path
。接下来,我们使用 Path
类的 name
属性提取文件名,并将结果赋值给变量 file_name
。最后,我们打印出了提取的文件名。
值得注意的是,Path
类的 name
属性与 os.path.basename()
函数具有相同的功能,都只会提取文件名。如果需要提取文件的完整路径,可以使用 Path
类的 resolve()
方法。
4. 使用 split 方法提取文件名
Python 的字符串类型提供了 split()
方法,该方法可以根据指定的分隔符将字符串分割成多个部分,并返回一个列表。我们可以使用 split
方法来提取文件名。
下面是使用 split
方法提取文件名的示例代码:
代码运行结果:
在上述代码中,我们首先定义了一个文件路径 file_path
,然后使用 split("/")
方法将文件路径按照斜杠字符分割成多个部分,并得到一个列表。由于文件名位于路径的最后一个部分,我们可以通过索引 -1
来获取该部分,即文件名。最后,我们打印出了提取的文件名。
需要注意的是,如果文件路径中使用的是反斜杠字符 \
,则需要将 split()
方法的分隔符改为双反斜杠 \\
。例如,file_path.split("\\")[-1]
。
5. 使用正则表达式提取文件名
如果文件名的格式具有一定的规律,我们还可以使用正则表达式来提取文件名。Python 的 re
模块提供了支持正则表达式的函数和方法。以下是使用正则表达式提取文件名的示例代码:
代码运行结果:
在上述代码中,我们首先导入了 re
模块,然后定义了一个文件路径 file_path
。接下来,我们使用 re.search(pattern, string)
函数来从文件路径中搜索满足指定模式的部分。其中,正则表达式 [^/\\]+$
表示匹配除了斜杠 /
和反斜杠 \
之外的字符,并且该字符的出现次数为一次或多次,即匹配文件名。最后,我们使用 group()
方法获取匹配的结果,即文件名,并将结果赋值给变量 file_name
。最终,我们打印出了提取的文件名。
6. 总结
本文详细介绍了使用 Python 提取文件名的几种方法,分别使用了 os.path.basename()
函数、pathlib
模块、字符串的 split()
方法以及正则表达式。根据实际需求和个人喜好,可以选择合适的方法来提取文件名。