ich habe mich mal dran versucht ID3 Tags von den MP3s auf meiner Platte auszulesen. Das ganze klappt an sich ganz gut nur ist es für mich zu langsam :-/
Gibts da noch irgendetwas das ich optimieren kann? Für 175 Lieder brauche ich ca 3,3 Sekunden... Da ich 12k Songs habe und das fertige programm mit GUI etc gerne veröffentlichen würde wäre es cool wenn es schneller gehen würde.
Ist nur die Frage ob es eine Softwareseitige oder Hardwareseitige Limitierung der Geschwindigkeit ist.
Hardwarespecs:
CPU: Core2Duo E8400@2x3Ghz
RAM: 6GB DDR2
Festplatten: 2x WD Caviar Black im Raid0 =)
An sich sollte man meinen das sollte ein bisschen was wegschaffen also was meint ihr?
Code: Alles auswählen
# -*- coding: utf-8 -*-
import time, os
import mimetypes
from mutagen.id3 import ID3
from mutagen.id3 import ID3NoHeaderError
# Starte Timer für die Zeitmessung
start = time.time()
def get_dirs(basedir):
for root, dirs, files in os.walk(basedir):
def file_assign_type(file):
file_path = os.path.join(root, file)
if "audio" in str(mimetypes.guess_type(file_path)[0]):
try:
audio = ID3(file_path)
# print "##################################"
# print "Album : %s" % audio["TALB"].text[0]
# print "Titelnummer : %s" % audio["TRCK"]
# print "Genre : %s" % audio["TCON"]
# print "Artist: %s" % audio['TPE1'].text[0]
# print "Track: %s" % audio["TIT2"].text[0]
# print "Release Year: %s" % audio["TDRC"].text[0]
except KeyError:
pass
except ID3NoHeaderError:
pass
elif "image" in str(mimetypes.guess_type(file_path)[0]):
pass
else:
pass
map(file_assign_type, files)
start_time = time.time()
base_dir = os.path.join("X:\\", "Music")
get_dirs(base_dir)
print "Used time: %f" % (time.time() - start_time)