2010-10-07 5 views
2

J'essaie d'écrire un script que scan récursive un répertoire donné et si trouvé mp3 obtenir et juste imprimer meta tag pour cela. Quoi que je sois passé à getEyeD3Tag j'ai eu une exception. Voici mon code que je l'ai écrit jusqu'à présentpython mp3 meta-tag

def getEyeD3Tags(path): 
    try: 
     trackInfo = eyeD3.Mp3AudioFile(path) 
     tag = trackInfo.getTag() 
     tag.link(path) 
     print tag.getArtist() 
     print tag.getAlbum() 
     print tag.getTitle() 

     #return (tag.getArtist(),tag.getTitle(),tag.getAlbum()) 
    except eyeD3.InvalidAudioFormatException: 
     print "File %s is not a mp3 file " % path 
mp3Num=0 
temp=os.walk(valid-folder-name) 
for root, dirs, files in temp: 
    for i in files: 
     if os.path.join(root,i): 
      temp=os.path.splitext(i) 
      temp[1].lower() 
      if temp[1]=='.mp3': 
       mp3Path=os.path.join(root,i) 
       print mp3Path 
       getEyeD3Tags(mp3Path) 
       mp3Num+=1 
       raw_input() 
      #print "**" 
     else: 
      print "Error invalid path" 
    print "\n\n" 
    #raw_input() 
print mp3Num 
raw_input() 

Et BTW est une façon d'obtenir le genre de fichier mp3 en utilisant eyed3? Thx à l'avance

+1

Quelle exception obtenez-vous? Celui que vous attrapez en disant que ce n'est pas un fichier MP3 valide ou un autre? Je suppose que ce dernier a expliqué le 'InvalidAudioFormatException'; s'il vous plaît poster votre erreur réelle (comme vous devriez toujours *** faire avec toutes les questions "Je reçois une erreur/exception"). –

+0

Désolé ma faute obtient toujours eyeD3.InvalidAudioFormatException le seul que je prends – John

+0

Essayez d'ajouter 'exception eyeD3.InvalidAudioFormatException comme e: print" Fichier invalide! "+ Str (e)' pour voir ce que l'exception dit réellement – Daenyth

Répondre

2

Pour vérifier si le fichier en cours d'analyse est un mp3 valide, appelez la méthode eyeD3.isMp3File (de nom de fichier).

Ce qui suit provient d'un petit script que j'ai fait pour trier automatiquement mon dossier musical.

def parseIDETag(self, path): 
     if eyeD3.isMp3File(path): 

De cette façon, si le fichier n'est pas un mp3, il passera simplement dessus.

De plus, str(tag.getGenre()) renvoie le genre sous forme de chaîne à l'aide de eyeD3.