前言:
在Python中经常会遇到需要解析一个文件的文件名及其后缀,下面介绍几种方法来获得文件名及其后缀。
常用方法:
方法一:使用 os.path
import os
filepath = '/path/to/your/file/example.txt'
# 获取文件名(含扩展名)
filename = os.path.basename(filepath) # 'example.txt'
# 分离文件名和扩展名
name, ext = os.path.splitext(filename) # name: 'example', ext: '.txt'
方法二:使用 pathlib
(推荐,Python 3.4+)
from pathlib import Path
filepath = Path('/path/to/your/file/example.txt')
# 获取文件名(含扩展名)
filename = filepath.name # 'example.txt'
# 获取文件名(不含扩展名)
stem = filepath.stem # 'example'
# 获取扩展名(含点)
suffix = filepath.suffix # '.txt'
示例输出:
print(filename) # example.txt
print(stem) # example
print(suffix) # .txt
如果要获取多个后缀
print(filepath.suffixes) # ['.tar', '.gz']
endwith()
endswith()
是 Python 中字符串类型的一个方法,用于判断字符串是否以指定的 后缀 结尾,常用于判断文件类型。
filename = "example.txt"
if filename.endswith(".txt"):
print("这是一个文本文件")
多个后缀(元组)判断:
filename = "archive.tar.gz"
if filename.endswith((".zip", ".tar.gz", ".rar")):
print("这是一个压缩文件")
结合 os.listdir()
批量筛选文件:
import os
files = os.listdir("your_folder")
txt_files = [f for f in files if f.endswith(".txt")]
常见用法场景:
-
过滤特定类型的文件(如
.py
,.jpg
,.csv
等) -
区分数据文件、配置文件、日志文件等
-
在遍历目录时跳过临时文件或备份文件(如以
~
结尾) -