Python 获取文件名称
在进行文件操作时,有时我们需要获取文件的名称,即文件的全名或者不包含后缀的文件名。Python提供了多种方法来获取文件名,可以根据具体需求选择合适的方法。本文将介绍使用Python获取文件名称的几种常见方式。
一、使用os模块获取文件名称
Python的os模块提供了一系列用于处理操作系统相关功能的函数。其中,os模块中的os.path
子模块提供了一些处理路径的函数,包括获取文件的名称。
1. 获取文件的全名 – os.path.basename()
os.path.basename()
函数可以用来获取文件路径中的文件名部分,即文件的全名。
import os
# 定义文件路径
file_path = '/home/user/Documents/test.txt'
# 使用os.path.basename()获取文件名
file_name = os.path.basename(file_path)
# 输出文件名
print(file_name)
运行以上代码,将输出文件的全名test.txt
。
2. 获取文件的不带后缀的名称 – os.path.splitext()
os.path.splitext()
函数可以用来分离文件名和扩展名,返回一个元组,元组的第一个元素是文件名部分,第二个元素是文件的扩展名。
import os
# 定义文件路径
file_path = '/home/user/Documents/test.txt'
# 使用os.path.splitext()获取文件名和扩展名
file_name, file_extension = os.path.splitext(file_path)
# 输出文件名和扩展名
print('文件名:', file_name)
print('扩展名:', file_extension)
运行以上代码,将输出文件的名称test
和扩展名.txt
。
二、使用pathlib模块获取文件名称
Python 3.4引入了pathlib
模块,它提供了一种简单易用的处理文件路径的方法。pathlib
模块的PurePath
类和Path
类提供了获取文件名的功能。
1. 获取文件的全名 – Path.name
Path.name
属性可以直接获取文件的全名。
from pathlib import Path
# 定义文件路径
file_path = Path('/home/user/Documents/test.txt')
# 使用Path.name获取文件名
file_name = file_path.name
# 输出文件名
print(file_name)
运行以上代码,将输出文件的全名test.txt
。
2. 获取文件的不带后缀的名称 – Path.stem
Path.stem
属性可以获取文件路径中的文件名部分,即不包含扩展名的文件名。
from pathlib import Path
# 定义文件路径
file_path = Path('/home/user/Documents/test.txt')
# 使用Path.stem获取文件名
file_name = file_path.stem
# 输出文件名
print(file_name)
运行以上代码,将输出文件的名称test
。
三、使用字符串处理获取文件名称
当文件路径以字符串形式存储时,也可以使用字符串处理函数来获取文件名。常见的字符串处理函数有split()、rfind()等。
1. 获取文件的全名 – split()函数
split()函数将字符串按照指定的分隔符进行切割,并返回切割后的字符串列表。可以使用split()函数获取文件的全名。
# 定义文件路径
file_path = '/home/user/Documents/test.txt'
# 使用split()函数切割字符串获取文件名
file_name = file_path.split('/')[-1]
# 输出文件名
print(file_name)
运行以上代码,将输出文件的全名test.txt
。
2. 获取文件的不带后缀的名称 – rfind()函数
rfind()函数返回字符串中指定字符或子字符串最后一次出现的索引位置。可以使用rfind()函数获取文件的不带后缀的名称。
# 定义文件路径
file_path = '/home/user/Documents/test.txt'
# 使用rfind()函数获取不带后缀的文件名
file_name = file_path[file_path.rfind('/') + 1:file_path.rfind('.')]
# 输出文件名
print(file_name)
运行以上代码,将输出文件的名称test
。
四、总结
本文介绍了使用Python获取文件名称的三种常见方法:使用os模块的os.path.basename()
和os.path.splitext()
函数、使用pathlib模块的Path.name
和Path.stem
属性,以及使用字符串处理函数split()和rfind()等。根据实际需求,可以选择合适的方法来获取文件名。