概要
需求:已知某个文件的绝对路径,从中提取文件名、文件所在目录、最后一个文件夹的名字。
举例:绝对路径 D:\Test\user\CheckResult.xlsx,从中提取出:
(1)文件名(包含扩展名):CheckResult.xlsx
(2)文件名(不包含扩展名):CheckResult
(3)文件夹完整路径 D:\Test\user
(4)文件夹路径中最后一个文件夹的名字 user
实现方法
以下方法都需要先 import os
1. 获取带扩展的文件名
fullpath= r'D:\Test\user\CheckResult.xlsx'
# 带后缀的文件名
fileNameExt = os.path.basename(fullpath)
print(fileNameExt)
输出为:
CheckResult.xlsx
2. 获取不带扩展的文件名
有两种方法,最终效果是一样的。
方法1.使用split()
split()通过分隔符对字符串切片,split('.')[0]意思是以'.'为分隔符,并取序列为0的项。
fullpath = r'D:\Test\user\CheckResult.xlsx'
# 不带后缀的文件名
fileName= os.path.basename(fullpath).split('.')[0]
print(fileName)
输出为:
CheckResult
方法2.使用splitext()
fullpath= r'D:\Test\user\CheckResult.xlsx'
# 不带后缀的文件名 CheckResult
dirPath, ext = os.path.splitext(fullpath)
fileName = dirPath.split("\\")[-1]
print(fileName)
第一步,splitext()方法将完整路径拆分成两部分,扩展以及除了扩展以外的所有内容。在这个示例中,D:\Test\user\CheckResult.xlsx 被拆分为了下面2个字符串,并返回到dirPath和ext中。
(1)D:\Test\user\CheckResult
(2).xlsx
第二步,使用split()方法,以"\"为字符串分割,索引[-1]表示最后一个元素。从D:\Test\user\CheckResult这个路径中提取出最后一个文件夹的名字。
结果输出为:
CheckResult
3. 获取文件夹完整路径
fullpath = r'D:\Test\user\CheckResult.xlsx'
# 文件夹路径
currentDir = os.path.dirname(fullpath)
print(currentDir)
输出为
D:\Test\user
4. 获取最后一个文件夹的名字
fullpath = r'D:\Test\user\CheckResult.xlsx'
# 最后一个文件夹的名字
currentDir = os.path.dirname(fullpath)
folderName = os.path.basename(currentDir)
print(folderName)
输出为:
user