在python中是否可以去除所有特殊字符和空格并用连字符替换但保留点扩展名(即文件扩展名,如.mp4或.mov或.txt或.jpg或.png或.pdf)
例如:
string = 'Special $#! characters spaces_ 888323.mp4'
应该导致
Special-characters-spaces_-888323.mp4
我正在使用以下方法,但认为这不是正确的方法
re.sub('(\W+)','-', string).replace('-mp4','.mp4').replace('-mov','.mov')
如果它确实是您正在处理的文件名,请考虑使用os.path.splitext
临时分离扩展名:
name, ext = os.path.splitext(string)
现在您可以自由操作name
,保持ext
完整:
name = re.sub('(\W+)','-', name)
然后你只需重新组合:
string = name + ext
如果这不是单行代码让您感到困扰,请将其变成一个函数。我还建议预编译正则表达式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句