Python實用技巧之如何獲取后綴名(擴展名)或文件名
一、引言
在日常編程中,我們經(jīng)常需要處理文件,包括讀取、寫入、移動、復(fù)制等操作。而在這些操作中,獲取文件的擴展名(后綴名)或文件名是一個常見的需求。Python提供了多種方法來實現(xiàn)這一需求,本文將詳細(xì)介紹其中的幾種方法,并通過實戰(zhàn)案例來加深理解。
二、獲取文件名
在Python中,獲取文件名通常使用os.path.basename()
函數(shù)。這個函數(shù)接受一個文件路徑作為參數(shù),并返回該文件的基本名稱,即最后一個路徑分隔符后面的部分。
下面是一個簡單的示例:
import os # 定義一個文件路徑 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ù)僅返回文件名,不包括路徑或擴展名。
三、獲取文件擴展名
在Python中,獲取文件擴展名通常使用os.path.splitext()
函數(shù)。這個函數(shù)接受一個文件路徑作為參數(shù),并返回一個元組,其中第一個元素是文件的基本名稱(不包括擴展名),第二個元素是文件的擴展名(包括點號)。
下面是一個簡單的示例:
import os # 定義一個文件路徑 file_path = "/home/user/documents/example.txt" # 使用os.path.splitext()獲取文件名和擴展名 file_name, file_extension = os.path.splitext(file_path) print("文件名:", file_name) # 輸出: 文件名: /home/user/documents/example print("擴展名:", file_extension) # 輸出: 擴展名: .txt
??注意:os.path.splitext()
函數(shù)返回的擴展名包括點號(.
)。如果你想要去掉點號,可以通過字符串切片操作來實現(xiàn):
file_extension = file_extension[1:] # 去掉點號 print("去掉點號的擴展名:", file_extension) # 輸出: 去掉點號的擴展名: txt
四、實戰(zhàn)案例
現(xiàn)在,我們來看一個實戰(zhàn)案例,演示如何在實際編程中運用獲取文件名和擴展名的知識。假設(shè)我們有一個文件夾,里面包含了多個文件,我們需要遍歷這個文件夾,打印出每個文件的文件名和擴展名。
import os # 定義一個文件夾路徑 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()獲取文件名和擴展名 file_base_name, file_ext = os.path.splitext(file_name) # 打印文件名和擴展名 print(f"文件名: {file_base_name}, 擴展名: {file_ext[1:]}")
這個示例代碼會遍歷指定文件夾中的所有文件,并打印出每個文件的文件名和擴展名。
??注意: 我們在打印擴展名時使用了字符串切片操作來去掉點號。
五、總結(jié)
本文介紹了在Python中獲取文件名和擴展名的幾種方法,包括使用os.path.basename()
函數(shù)獲取文件名,以及使用os.path.splitext()
函數(shù)獲取文件名和擴展名。通過實戰(zhàn)案例的演示,我們了解了如何在實際編程中運用這些知識。希望本文能夠幫助你更好地處理文件相關(guān)的編程任務(wù)!
附:python獲取指定文件夾下所有指定后綴文件列表
import os # 獲取指定路徑下所有指定后綴的文件 # dir 指定路徑 # ext 指定后綴,鏈表&不需要帶點 或者不指定。例子:['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實用技巧之如何獲取后綴名(擴展名)或文件名的文章就介紹到這了,更多相關(guān)Python獲取后綴名或文件名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談pytorch中為什么要用 zero_grad() 將梯度清零
這篇文章主要介紹了pytorch中為什么要用 zero_grad() 將梯度清零的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python實現(xiàn)獲取帶合并單元格的表格數(shù)據(jù)
由于在日常運維中經(jīng)常出現(xiàn)一些合并單元格的表格,如果要獲取數(shù)據(jù)比較麻煩,所以本文我們就來聊聊如何使用Python實現(xiàn)獲取帶合并單元格的表格數(shù)據(jù)吧2025-05-05python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python編寫一個驗證碼圖片數(shù)據(jù)標(biāo)注GUI程序附源碼
這篇文章主要介紹了Python編寫一個驗證碼圖片數(shù)據(jù)標(biāo)注GUI程序,本文給大家附上小編精心整理的源碼,需要的朋友可以參考下2019-12-12基于python實現(xiàn)地址和經(jīng)緯度轉(zhuǎn)換
這篇文章主要介紹了基于python實現(xiàn)地址和經(jīng)緯度轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05python通過百度地圖API獲取某地址的經(jīng)緯度詳解
這篇文章主要給大家介紹了關(guān)于python通過百度地圖API獲取某地址的經(jīng)緯度的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01