问题描述
假设我正在一个包含不同扩展名文件(例如:.doc,.xlsx,.ppt,.pptx
)的文件夹中进行迭代。我想从文件名而不是扩展名中删除点('。')。如果我只是这样做:
def filename_replacer(file_name):
extension = file_name[-4:]
raw_name = file_name[:-4]
new_name = raw_name.replace(".","_")
new_name = new_name + extension
return new_name
file = "Remove.TheDotReport.xlsx"
cleaned_file = filename_replacer(file)
结果不正确(例如:Remove_TheDotReport_xlxs
)。如何在不弄乱扩展名的情况下始终删除文件中的点?
解决方法
使用os.path.splitext
首先将扩展名取出。
import os
def filename_replacer(filename):
fname,fext = os.path.splitext(filename)
return fname.replace(".","_") + fext