在Python中提取不带后缀的文件名,最常用的方法是使用os.path.splitext()
函数或Path.stem
属性(需导入pathlib
模块)。 这两种方法能快速分离文件名和扩展名,适用于不同场景,代码简洁且兼容性强。
方法1:使用os.path.splitext()
- 拆分文件名与扩展名:
通过os.path.splitext("file.txt")
返回元组("file", ".txt")
,直接取第一个元素即可。pythonCopy Code
import os filename = "example.docx" name_without_ext = os.path.splitext(filename)[0] # 输出: "example"
- 兼容路径处理:
自动忽略路径中的目录部分(如/data/file.txt
仍返回"file"
)。
方法2:使用pathlib.Path.stem
- 面向对象操作:
Path
对象的stem
属性直接返回无后缀名部分,无需手动拆分。pythonCopy Code
from pathlib import Path filename = Path("report.pdf").stem # 输出: "report"
- 跨平台支持:
适用于Windows、Linux等系统路径格式,代码更易读。
注意事项
- 隐藏文件处理:若文件名以
.
开头(如.bashrc
),上述方法会保留前缀点。 - 多后缀名:如
archive.tar.gz
,stem
仅去除最后一个后缀(返回archive.tar
),需结合split()
进一步处理。
根据需求选择方法——os.path
适合简单场景,pathlib
则提供更现代的API。