Python實(shí)用技巧之如何獲取后綴名(擴(kuò)展名)或文件名
一、引言
在日常編程中,我們經(jīng)常需要處理文件,包括讀取、寫入、移動(dòng)、復(fù)制等操作。而在這些操作中,獲取文件的擴(kuò)展名(后綴名)或文件名是一個(gè)常見的需求。Python提供了多種方法來實(shí)現(xiàn)這一需求,本文將詳細(xì)介紹其中的幾種方法,并通過實(shí)戰(zhàn)案例來加深理解。
二、獲取文件名
在Python中,獲取文件名通常使用os.path.basename()函數(shù)。這個(gè)函數(shù)接受一個(gè)文件路徑作為參數(shù),并返回該文件的基本名稱,即最后一個(gè)路徑分隔符后面的部分。
下面是一個(gè)簡單的示例:
import os # 定義一個(gè)文件路徑 file_path = "/home/user/documents/example.txt" # 使用os.path.basename()獲取文件名 file_name = os.path.basename(file_path) print(file_name) # 輸出: example.txt
??注意:os.path.basename()函數(shù)僅返回文件名,不包括路徑或擴(kuò)展名。
三、獲取文件擴(kuò)展名
在Python中,獲取文件擴(kuò)展名通常使用os.path.splitext()函數(shù)。這個(gè)函數(shù)接受一個(gè)文件路徑作為參數(shù),并返回一個(gè)元組,其中第一個(gè)元素是文件的基本名稱(不包括擴(kuò)展名),第二個(gè)元素是文件的擴(kuò)展名(包括點(diǎn)號(hào))。
下面是一個(gè)簡單的示例:
import os
# 定義一個(gè)文件路徑
file_path = "/home/user/documents/example.txt"
# 使用os.path.splitext()獲取文件名和擴(kuò)展名
file_name, file_extension = os.path.splitext(file_path)
print("文件名:", file_name) # 輸出: 文件名: /home/user/documents/example
print("擴(kuò)展名:", file_extension) # 輸出: 擴(kuò)展名: .txt
??注意:os.path.splitext()函數(shù)返回的擴(kuò)展名包括點(diǎn)號(hào)(.)。如果你想要去掉點(diǎn)號(hào),可以通過字符串切片操作來實(shí)現(xiàn):
file_extension = file_extension[1:] # 去掉點(diǎn)號(hào)
print("去掉點(diǎn)號(hào)的擴(kuò)展名:", file_extension) # 輸出: 去掉點(diǎn)號(hào)的擴(kuò)展名: txt
四、實(shí)戰(zhàn)案例
現(xiàn)在,我們來看一個(gè)實(shí)戰(zhàn)案例,演示如何在實(shí)際編程中運(yùn)用獲取文件名和擴(kuò)展名的知識(shí)。假設(shè)我們有一個(gè)文件夾,里面包含了多個(gè)文件,我們需要遍歷這個(gè)文件夾,打印出每個(gè)文件的文件名和擴(kuò)展名。
import os
# 定義一個(gè)文件夾路徑
folder_path = "/home/user/documents"
# 遍歷文件夾中的文件
for file_name in os.listdir(folder_path):
# 拼接文件的完整路徑
file_path = os.path.join(folder_path, file_name)
# 判斷是否為文件(排除文件夾)
if os.path.isfile(file_path):
# 使用os.path.splitext()獲取文件名和擴(kuò)展名
file_base_name, file_ext = os.path.splitext(file_name)
# 打印文件名和擴(kuò)展名
print(f"文件名: {file_base_name}, 擴(kuò)展名: {file_ext[1:]}")
這個(gè)示例代碼會(huì)遍歷指定文件夾中的所有文件,并打印出每個(gè)文件的文件名和擴(kuò)展名。
??注意: 我們在打印擴(kuò)展名時(shí)使用了字符串切片操作來去掉點(diǎn)號(hào)。
五、總結(jié)
本文介紹了在Python中獲取文件名和擴(kuò)展名的幾種方法,包括使用os.path.basename()函數(shù)獲取文件名,以及使用os.path.splitext()函數(shù)獲取文件名和擴(kuò)展名。通過實(shí)戰(zhàn)案例的演示,我們了解了如何在實(shí)際編程中運(yùn)用這些知識(shí)。希望本文能夠幫助你更好地處理文件相關(guān)的編程任務(wù)!
附:python獲取指定文件夾下所有指定后綴文件列表
import os
# 獲取指定路徑下所有指定后綴的文件
# dir 指定路徑
# ext 指定后綴,鏈表&不需要帶點(diǎn) 或者不指定。例子:['xml', 'java']
def GetFileFromThisRootDirV2(target_dir, target_suffix="pxy"):
find_res = []
target_suffix_dot = "." + target_suffix
walk_generator = os.walk(target_dir)
for root_path, dirs, files in walk_generator:
if len(files) < 1:
continue
for file in files:
file_name, suffix_name = os.path.splitext(file)
if suffix_name == target_suffix_dot:
find_res.append(os.path.join(root_path, file))
return find_res
LogList = GetFileFromThisRootDirV2("D:/temp", "log")
到此這篇關(guān)于Python實(shí)用技巧之如何獲取后綴名(擴(kuò)展名)或文件名的文章就介紹到這了,更多相關(guān)Python獲取后綴名或文件名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python XML RPC服務(wù)器端和客戶端實(shí)例
這篇文章主要介紹了Python XML RPC服務(wù)器端和客戶端實(shí)例,本文給出了實(shí)現(xiàn)代碼以及運(yùn)行效果,需要的朋友可以參考下2014-11-11
Python日期時(shí)間對象轉(zhuǎn)換為字符串的實(shí)例
今天小編就為大家分享一篇Python日期時(shí)間對象轉(zhuǎn)換為字符串的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python3創(chuàng)建Django項(xiàng)目的幾種方法(3種)
這篇文章主要介紹了Python3創(chuàng)建Django項(xiàng)目的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Pytorch實(shí)現(xiàn)List?Tensor轉(zhuǎn)Tensor,reshape拼接等操作
這篇文章主要介紹了Pytorch實(shí)現(xiàn)List?Tensor轉(zhuǎn)Tensor,reshape拼接等操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
python非單一.py文件用Pyinstaller打包發(fā)布成exe
第一次將自己做的python爬蟲項(xiàng)目打包成exe,所以留個(gè)筆記,本文詳細(xì)的介紹了python非單一.py文件用Pyinstaller打包發(fā)布成exe,具有一定的參考價(jià)值,感興趣的可以了解一下2022-03-03
Python如何對圖片中的頭像進(jìn)行摳圖(四種方法)
要實(shí)現(xiàn)對圖片中人臉或頭像進(jìn)行摳圖,可以使用 Python 的 人臉檢測 和 掩碼生成裁剪工具,這里提供幾種實(shí)現(xiàn)方法,用于檢測圖片中的人臉區(qū)域并實(shí)現(xiàn)裁剪效果,感興趣的朋友跟隨小編一起看看吧2025-09-09
Python實(shí)現(xiàn)高效提取Word文檔的特定頁
在日常做?Python?辦公自動(dòng)化時(shí),處理?Word?文檔往往不只是讀取文本內(nèi)容,很多時(shí)候,我們真正需要的是像處理?PDF?一樣去操作?Word?文檔,下面我們就來看看如何使用Python提取Word文檔的特定頁面吧2026-04-04

