重命名文件名CAP第一个字符,但保持扩展名小写

时间:2014-08-10 08:10:15

标签: python file mp3 rename

我已经构建了一个脚本,该脚本重命名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我解决了我的问题并将脚本留在这里,以便其他人也可以使用它。

1 个答案:

答案 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