python一键分类文件夹下的文件音乐

●应用场景

文件夹下音乐很,现在想根据歌名中的作者进行分类到不同的文件夹之下。

分类之后再基于分类的资源结构构件后期的web服务。

其中分类的工作交给python脚本进行完成。


待分类音乐文件如:

周杰伦 - 枫.mp3

周杰伦-枫.mp3

周杰伦_枫.mp3

...


●分类的脚本classdir.py

import os,sys
import shutil,string
from string import Template
import re
###############################################################################
gCount = 0

###############################################################################
def getList(dirname,pFunc):
    global gCount
    try:
        ls=os.listdir(dirname)
    except:
        print dirname,'is access deny'
    else:
        for file in ls:
            temp = os.path.join(dirname,file)
            if os.path.isdir(temp):
                continue
            else:
                pFunc(dirname,file)

###############################################################################
def create_dir_ifneed(author):
    ls=os.listdir(os.getcwd())
    if author in ls:
        return
    os.mkdir(author)

def rename_file(old,new):
    dirname = os.getcwd()
    os.rename(os.path.join(dirname,old),os.path.join(dirname,new))
    
def move_file_to_dir(file,dir):
    dirname = os.getcwd()
    shutil.move(os.path.join(dirname,file),os.path.join(dirname,dir))
def process(dirname,file):
    if file == "." or file == "..":
        return
    print file
    if not re.search("mp3$",file):
        return
    if re.search("-",file):
        items = file.split("-",1)
        author = items[0].strip()
        fname = items[1].strip()
        create_dir_ifneed(author)
        rename_file(file,fname)
        move_file_to_dir(fname,author)
    if re.search("_",file):
        items = file.split("_",1)
        author = items[0].strip()
        fname = items[1].strip()
        create_dir_ifneed(author)
        rename_file(file,fname)
        move_file_to_dir(fname,author)
    

###############################################################################
print "processing the following files"
print "====================================================="
getList(os.getcwd(),process)

你可能感兴趣的:(Python)