Python 获取文件名
在日常的文件操作中,我们经常需要获取文件的名称,用于展示、处理或存储。Python 提供了多种方法来获取文件名,本文将详细介绍这些方法,并给出相应的示例代码。
1. 使用 os 模块
Python 的 os
模块提供了许多用于文件操作的函数。其中,os.path
模块下的函数可以用于获取文件名。
1.1. 使用 os.path.basename()
os.path.basename()
函数可以获取文件路径中的文件名部分。例如,对于路径 ‘/path/to/file.txt’,函数将返回 ‘file.txt’。
下面是一个示例代码:
import os
file_path = '/path/to/file.txt'
file_name = os.path.basename(file_path)
print(file_name)
输出为:
file.txt
1.2. 使用 os.path.splitext()
os.path.splitext()
函数可以将文件路径分割为根路径和扩展名两部分。例如,对于路径 ‘/path/to/file.txt’,函数将返回 (‘/path/to/file’, ‘.txt’)。
下面是一个示例代码:
import os
file_path = '/path/to/file.txt'
file_root, file_ext = os.path.splitext(file_path)
print(file_root)
print(file_ext)
输出为:
/path/to/file
.txt
2. 使用 Path 对象
Python 3.4 引入了 pathlib
模块,其中的 Path
类提供了一种更现代化和面向对象的方式来进行文件路径操作。
2.1. 使用 Path.name 属性
Path
对象的 name
属性返回文件的名称部分。例如,对于路径 ‘/path/to/file.txt’,属性值将为 ‘file.txt’。
下面是一个示例代码:
from pathlib import Path
file_path = Path('/path/to/file.txt')
file_name = file_path.name
print(file_name)
输出为:
file.txt
2.2. 使用 Path.stem 属性和 Path.suffix 属性
Path
对象的 stem
属性返回文件的根部分,suffix
属性返回文件的扩展名部分。例如,对于路径 ‘/path/to/file.txt’,stem
属性值为 ‘file’,suffix
属性值为 ‘.txt’。
下面是一个示例代码:
from pathlib import Path
file_path = Path('/path/to/file.txt')
file_root = file_path.stem
file_ext = file_path.suffix
print(file_root)
print(file_ext)
输出为:
file
.txt
3. 使用正则表达式
如果对文件名的匹配有特定需求,可以使用正则表达式来进行文件名的提取。
下面是一个示例代码,通过正则表达式提取文件名中的数字部分:
import re
file_name = 'file_123.txt'
match = re.search(r'\d+', file_name)
if match:
number = match.group()
print(number)
else:
print('No match found.')
输出为:
123
总结
本文介绍了 Python 中获取文件名的多种方法。使用 os.path
模块可以轻松地获取文件名、根路径和扩展名;而使用 Path
对象可以更方便地进行文件路径操作;通过正则表达式可以根据特定需求提取文件名的部分信息。根据具体的需求和习惯,选择适合自己的方法即可。