概要
需求:已知某個文件的絕對路徑,從中提取文件名、文件所在目錄、最后一個文件夾的名字。
舉例:絕對路徑 D:\Test\user\CheckResult.xlsx,從中提取出:
(1)文件名(包含擴展名):CheckResult.xlsx
(2)文件名(不包含擴展名):CheckResult
(3)文件夾完整路徑 D:\Test\user
(4)文件夾路徑中最后一個文件夾的名字 user
實現(xiàn)方法
以下方法都需要先 import os
-
獲取帶擴展的文件名
fullpath= r'D:\Test\user\CheckResult.xlsx'帶后綴的文件名
fileNameExt = os.path.basename(fullpath)
print(fileNameExt)
輸出為:
CheckResult.xlsx
- 獲取不帶擴展的文件名
有兩種方法,最終效果是一樣的。
方法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()方法將完整路徑拆分成兩部分,擴展以及除了擴展以外的所有內(nèi)容。在這個示例中,D:\Test\user\CheckResult.xlsx 被拆分為了下面2個字符串,并返回到dirPath和ext中。
(1)D:\Test\user\CheckResult
(2).xlsx
第二步,使用split()方法,以""為字符串分割,索引[-1]表示最后一個元素。從D:\Test\user\CheckResult這個路徑中提取出最后一個文件夾的名字。
結(jié)果輸出為:
CheckResult
-
獲取文件夾完整路徑
fullpath = r'D:\Test\user\CheckResult.xlsx'文件夾路徑
currentDir = os.path.dirname(fullpath)
print(currentDir)
輸出為
D:\Test\user
-
獲取最后一個文件夾的名字
fullpath = r'D:\Test\user\CheckResult.xlsx'最后一個文件夾的名字
currentDir = os.path.dirname(fullpath)
folderName = os.path.basename(currentDir)print(folderName)
輸出為:
user