在進(jìn)行日常程序開發(fā)過程中,獲取文件名是一個普遍的需求。本篇文章將演示如何用Python獲取文件名,以及獲取文件路徑和拓展名。
一、使用os模塊
1.1 os.listdir()方法
Python的os模塊提供了一系列用于操作操作系統(tǒng)功能的方法。其中一個方法就是os.listdir()
,它可以返回指定目錄下的所有文件和文件夾的名稱。我們可以利用這個方法來獲取文件夾中所有文件的名稱。
def get_file_name_1(file_path):
file_names = os.listdir(file_path)
return file_names
file_path = './data'
file_names = get_file_name_1(file_path)
print(file_names)
輸出結(jié)果:
['2023-08-07_12.txt', '2023-08-07_09.txt', '2023-08-07_11.txt', '2023-08-07_10.txt', '2023-08-07_08.txt']
1.2 os.path()方法
Python的os.path模塊提供了一些有用的方法來處理文件路徑。我們可以使用os.path.basename()
方法來獲取文件的基名(即文件名加擴(kuò)展名),或者使用os.path.splitext()
方法來獲取文件的擴(kuò)展名。
def get_file_name_2(file_path):
file_names = []
for root, dirs, files in os.walk(file_path):
for file in files:
file_names.append(os.path.basename(file))
return file_names
file_path = './data'
file_names = get_file_name_1(file_path)
print(file_names)
輸出結(jié)果:
['2023-08-07_12.txt', '2023-08-07_09.txt', '2023-08-07_11.txt', '2023-08-07_10.txt', '2023-08-07_08.txt']
這里,補(bǔ)充一些關(guān)于os.path模塊在處理文件方面的基本使用方法:
import os
path = '/home/user/documents/file.txt'
# os.path.basename()獲取文件名
filename = os.path.basename(path)
print(filename) # 輸出 "file.txt"
# os.path.dirname()獲取文件路徑
directory = os.path.dirname(path)
print(directory) # 輸出 "/home/user/documents"
# os.path.splitext()獲取文件名和拓展名
filename_without_ext, file_extension = os.path.splitext(filename)
print(filename_without_ext) # 輸出 "file"
print(file_extension) # 輸出 ".txt"
二、使用Pathlib模塊
Pathlib是Python3.4以上版本中自帶的模塊,用于處理文件路徑。它提供了易于使用的面向?qū)ο蟮慕涌?,可以輕松獲取文件名,路徑和拓展名。
from pathlib import Path
path = Path('/home/user/documents/file.txt')
# Path.name獲取文件名
filename = path.name
print(filename) # 輸出 "file.txt"
# Path.parent獲取文件路徑
directory = path.parent
print(directory) # 輸出 "/home/user/documents"
# Path.suffix獲取拓展名
file_extension = path.suffix
print(file_extension) # 輸出 ".txt"
# Path.stem獲取文件名不帶拓展名
filename_without_ext = path.stem
print(filename_without_ext) # 輸出 "file"
三、使用正則表達(dá)式獲取文件名
如果文件名不在文件路徑的末尾,可以使用正則表達(dá)式來提取文件名。文章來源:http://www.zghlxwxcb.cn/news/detail-718653.html
import re
path = '/home/user/documents/file.txt'
# 使用正則表達(dá)式獲取文件名
filename = re.findall(r'/([^/]+)\.txt', path)[0]
print(filename) # 輸出 "file"
結(jié)論
以上是三種獲取文件名的方法,使用os模塊和Pathlib模塊可以更加簡潔方便地獲取文件名、路徑和拓展名,而使用正則表達(dá)式可以靈活處理較為復(fù)雜的文件路徑。在編寫Python程序時,可以根據(jù)實(shí)際情況選擇最合適的方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-718653.html
參考資料
- Python獲取文件名
到了這里,關(guān)于Python獲取文件名的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!