【发布时间】:2020-08-20 23:33:30
【问题描述】:
我正在遍历一个包含不同扩展名的文件的文件夹。我想从文件名中删除点 ('.'),但不是扩展名。如果我只是这样做:
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)。如何在不弄乱扩展名的情况下始终删除文件中的点?
【问题讨论】:
-
最简单的答案...将扩展名的切片增加到
[-5:],这将涵盖4个字符+点的扩展名。在非常奇怪的极端情况下可能会失败,其中您有 3 个字母的扩展名并且文件名以点结尾,如果这甚至是合法的。我确信正则表达式专业人士会有其他选择......
标签: python python-3.x path