python中如何去掉扩展名

python中如何去掉扩展名

作者:Rhett Bai发布时间:2026-01-14阅读时长:0 分钟阅读次数:14

用户关注问题

Q
如何从文件名中提取不带扩展名的文件名?

我有一个包含扩展名的完整文件名,想要获取去掉扩展名后的文件名,有什么简单的方法吗?

A

使用 os.path.splitext 方法去除扩展名

Python 提供了 os.path 模块中的 splitext 方法,可以方便地拆分文件名与扩展名。比如,调用 os.path.splitext('example.txt') 会返回一个元组 ('example', '.txt'),这样你就能获得不带扩展名的文件名。

Q
处理多点的文件名时,如何准确去除扩展名?

如果文件名像 'archive.tar.gz' 这样有多个点,怎样获取去掉最后一个扩展名的文件名?

A

利用 os.path.splitext 只去除最后一级扩展名

os.path.splitext 只会拆分最后一个扩展名,因此对于 'archive.tar.gz',会得到 ('archive.tar', '.gz')。如果想去除全部扩展名,需要多次调用 splitext 或使用其他方法。一般情况下,只需要移除最后一级扩展名即可。

Q
有没有不借助第三方库的方法实现去掉文件扩展名?

除了 os.path,还有没有更简单的方式去除字符串末尾的文件扩展名?

A

利用字符串操作切片实现去除扩展名

通过字符串的 rfind 方法定位最后一个点的位置,可以利用切片截取文件名的主干部分。例如,file_name[:file_name.rfind('.')] 可以返回不带扩展名的文件名。但是要注意文件名可能不存在点,这时需要做判断避免索引错误。