
python中如何去掉扩展名
用户关注问题
如何从文件名中提取不带扩展名的文件名?
我有一个包含扩展名的完整文件名,想要获取去掉扩展名后的文件名,有什么简单的方法吗?
使用 os.path.splitext 方法去除扩展名
Python 提供了 os.path 模块中的 splitext 方法,可以方便地拆分文件名与扩展名。比如,调用 os.path.splitext('example.txt') 会返回一个元组 ('example', '.txt'),这样你就能获得不带扩展名的文件名。
处理多点的文件名时,如何准确去除扩展名?
如果文件名像 'archive.tar.gz' 这样有多个点,怎样获取去掉最后一个扩展名的文件名?
利用 os.path.splitext 只去除最后一级扩展名
os.path.splitext 只会拆分最后一个扩展名,因此对于 'archive.tar.gz',会得到 ('archive.tar', '.gz')。如果想去除全部扩展名,需要多次调用 splitext 或使用其他方法。一般情况下,只需要移除最后一级扩展名即可。
有没有不借助第三方库的方法实现去掉文件扩展名?
除了 os.path,还有没有更简单的方式去除字符串末尾的文件扩展名?
利用字符串操作切片实现去除扩展名
通过字符串的 rfind 方法定位最后一个点的位置,可以利用切片截取文件名的主干部分。例如,file_name[:file_name.rfind('.')] 可以返回不带扩展名的文件名。但是要注意文件名可能不存在点,这时需要做判断避免索引错误。