#!/usr/bin/python import os import sys import getopt from mutagen.easyid3 import ID3 from mutagen.oggvorbis import OggVorbis optlist, args = getopt.getopt(sys.argv[1:], "", "misc") #print optlist misc = False for o, a in optlist: if o == "--misc": misc = True elif o in ("-h", "--help"): usage() sys.exit() else: assert False, "unhandled option" path = os.getcwd()+'/' # print path song_list = [] for filename in args: basename, extension = os.path.splitext(filename) # print(filename) # print(extension) if extension == '.mp3' : # print(filename) track = {} try : track = ID3(path+filename) except Exception : print path+filename print 'could not read ', filename pass if len(track) > 0 : #print dir(track['TALB'].text) #print dir(track) #print track song = { 'filename' : filename, 'extension' : extension, 'artist' : track['TPE1'].text[0], 'album' : track['TALB'].text[0], 'track' : track['TRCK'].text[0], 'title' : track['TIT2'].text[0], } #if not track.has_key('TSSE') : #tagg[u"TSSE"] = ID3.TSSE() #track['TSSE'].text = [''] #print track #track.save() # print song song_list.append(song) elif extension == '.ogg' : track = OggVorbis(path_file) song = { 'filename' : filename, 'extension' : extension, 'artist' : track['artist'][0], 'album' : track['album'][0], 'track' : track['tracknumber'][0], 'title' : track['title'][0], } for song in song_list: mystring = "%s %d\t%3.2f %-8s" % ("Values:",42,56.89732,"tot") song['track'] = "%02d" % (int(song['track'])) if (misc) : song['filename_new'] = ( (song['album']+'_-_'+str(song['track'])+'_-_'+song['artist']+'_-_'+song['title']).replace(' ','_').capit alize()+song['extension'] ).replace('/','_').lower() else : song['filename_new'] = ( (song['artist']+'_-_'+song['album']+'_-_'+song['track']+'_-_'+song['title']).replace(' ','_').capitalize ()+song['extension'] ).replace('/','_').lower() print song['filename_new'] y_n = raw_input('do you want to rename the files? (y/n)').lower().lstrip() if y_n == 'y' : for song in song_list: print 'mv "'+song['filename']+'" "'+song['filename_new']+'"' os.rename(song['filename'], song['filename_new'])