我已经构建了一个脚本,该脚本重命名CWD中的所有文件名,除了脚本跳过的脚本以使所有文件名都具有光滑和相同的格式。我建立它的原因有时当你下载文件或其他所有格式不同的东西。有些人使用"。, - _"或大写的一切或w.e.并且看起来很丑,加上它很难处理,所以我编写了这个脚本,使一切都有一种格式。
import os,sys,re,time
start=time.time()
skip2=['.py']
skip3=['.Jpg','.jpg']
count=0
lijst=os.listdir()
r = re.compile(r'[-_ ]+')
def solve(s):
name, ext = os.path.splitext(s)
artist, song = name.rsplit('-', 1)
artist = r.sub(' ', artist).title().strip()
song = r.sub(' ', song).title().strip()
ext = ext.lower()
return artist + ' - ' + song + ext
for x in lijst:
if x[-3:] not in skip2 and x[-4:] not in skip3:
y=x
if __name__ == '__main__':
x=solve(x)
x=re.sub('Ft' ,'Ft.' ,x)
x=re.sub('Feat' ,'Feat.' ,x)
x=re.sub('Extended Mix' ,'(Extended Mix)' ,x)
x=re.sub('Original Mix' ,'(Original Mix)' ,x)
x=x.replace('(((' ,'(')
x=x.replace('((' ,'(')
x=x.replace(')))' ,')')
x=x.replace('))' ,')')
x=re.sub("\.\.",".", x)
x=re.sub(' 'or' ' ,' ' ,x)
print(x)
os.rename (y,x)
count=count+1
print("%s Files edited."%count)
print('It took', time.time()-start, 'seconds.')
input("Press enter to exit...")
非常感谢Ashwini Chaudhary我解决了我的问题并将脚本留在这里,以便其他人也可以使用它。
答案 0 :(得分:0)
您可以先使用os.path.splitext
分隔文件名和扩展名,然后对文件名进行一些处理,最后将它们连接起来:
import os
import re
r = re.compile(r'[-_ ]+')
def solve(s):
name, ext = os.path.splitext(s)
artist, song = name.rsplit('-', 1)
artist = r.sub(' ', artist).title().strip()
song = r.sub(' ', song).title().strip()
return artist + ' - ' + song + ext
if __name__ == '__main__':
print solve("Alibi- Eternity_ Ft_ Armin Van Buuren and Dj Tiesto_.mp3")
print solve( "05-orjan_nilsen-so_long_radio__original_mix.mp3")
print solve( "05 - Orjan Nilsen - So Long Radio (Original Mix).mp3")
<强>输出:强>
Alibi - Eternity Ft Armin Van Buuren And Dj Tiesto.mp3
05 Orjan Nilsen - So Long Radio Original Mix.mp3
05 Orjan Nilsen - So Long Radio (Original Mix).mp3