python filename清理

时间:2018-05-17 02:50:41

标签: python regex

在python中,可以去除所有特殊字符和空格,并用连字符替换,但保留点扩展名(即文件扩展名,如.mp4或.mov或.txt或.jpg或.png或.pdf)

例如:

Special-characters-spaces_-888323.mp4

应该导致

re.sub('(\W+)','-', string).replace('-mp4','.mp4').replace('-mov','.mov')

我使用以下方法,但不认为它是正确的方法

invokeRequest

1 个答案:

答案 0 :(得分:2)

如果这是您正在处理的文件名,请考虑使用os.path.splitext临时分离扩展程序:

name, ext = os.path.splitext(string)

现在,您可以name自由操作,保持ext完好无损:

name = re.sub('(\W+)','-', name)

然后你重新组合:

string = name + ext

如果你觉得这不是一个单行,那么就把它变成一个功能。我还建议预编译正则表达式。