def get_tag(filelist): """ Read filelist and return mp3 tags, pass None if not specified tag is found""" errors = [] for f in filelist: try: id3r = id3.Reader(f) print("Artist: {}, Album: {}, Track: {}, Song: {}".format( id3r.get_value('performer'), id3r.get_value('album'), id3r.get_value('track'), id3r.get_value('title'))) except: errors.append(f)
def processfile(fname): id3r = id3reader_p3.Reader(fname) album = id3r.get_value('album') artist = id3r.get_value('performer') title = id3r.get_value('title') iscomp = id3r.get_value('TCP') if (iscomp is None): newdir = ensuredir(artist, album) else: newdir = ensurecdir(album) os_str = 'mv "' os_str += fname os_str += '" "' os_str += newdir os_str += '"' os.system(os_str) print(os_str)
def full_file(root, extension="mp3"): """ search for all the files in a chosen directory and file extension will try to display the title from the mp3 properties. :param root: the path of a directory to search for files :param extension: type of files needed (default - mp3) :return: returns a list of all the files (from a specific type) in the selected directory """ global track_title_list file_errors = [] track_title_list = [] for path, directories, files in os.walk(root): # TODO if there sub directories, search inside as well for file in fnmatch.filter(files, "*" + extension): try: id3r = id3reader.Reader(root + "/" + file) if id3r.get_value('title') is None or "": track_title_list.append(file.strip("mp3")) else: track_title_list.append(id3r.get_value('title')) except OSError: file_errors.append(file) return track_title_list
for file in files: yield os.path.join(path, file) # album_list = find_albums("d:\music", "Black*") # song_list = find_songs(album_list) # for a in album_list: # print(a) # for s in song_list: # print(s) error_list = [] for f in get_files("music", "emp3"): try: id3r = id3reader.Reader(f) print(f"Artist: {id3r.get_value('performer')} Album: {id3r.get_value('album')} Track: {id3r.get_value('track')} Song: {id3r.get_value('title')}") except: error_list.append(f) for e in error_list: print(e) # for f in file_from_two_folders('d:\music', 'Black Sabbath'): # print(f)
import os import fnmatch import id3reader_p3 def fileget(root, ext=None): for path, directories, files in os.walk(root): for song in fnmatch.filter(files, ext): yield os.path.join(path, song) song_list = fileget("C:\\Users\\HP-INDIA", "*mp3") #TODO put path here listus = [] for a in song_list: try: id3r = id3reader_p3.Reader(a) print("Artist: {}, Album: {}, Track:{}, Song: {}".format( id3r.get_value('performer'), id3r.get_value('album'), id3r.get_value('track'), id3r.get_value('title'))) except OSError: listus.append(a) for error in listus: print(error)
import id3reader_p3 as reader def find_music(start, extension): """idk.""" for path, directories, files in os.walk(start): for file in fnmatch.filter(files, '*.{}'.format(extension)): absolute_path = os.path.abspath(path) # create absolute path yield os.path.join(absolute_path, file) # use it in yielded values my_music_files = find_music("music", "emp3") error_list = [] for f in my_music_files: try: id3r = reader.Reader(f) print("Artist: {}, Album: {}, Track: {}, Song: {}.".format( id3r.get_value("performer"), id3r.get_value("album"), id3r.get_value("track"), id3r.get_value("title"), )) except: error_list.append(f) for error_file in error_list: print(error_file)
""" import os import fnmatch import id3reader_p3 as id3reader def find_music_files(root, extension): for path, dirs, files in os.walk(root): for file in fnmatch.filter(files, '*.{}'.format(extension)): yield os.path.join(os.path.abspath(path), file) find_music_files = find_music_files('music', 'emp3') exception_list = [] for i in find_music_files: try: id3r = id3reader.Reader(i) print("Artist: {}, Album: {}, Track: {}, Song: {}".format( id3r.get_value('performer'), id3r.get_value('album'), id3r.get_value('track'), id3r.get_value('title'), )) except Exception: exception_list.append(i) for i in exception_list: print(i)
complete_path = os.path.join(artist_name) for file in files: if file.endswith(ext): yield os.path.abspath(os.path.join(complete_path, file)) def find_music(root, ext): for path, directories, files in os.walk(root, topdown=True): for file in fnmatch.filter(files, "*.{}".format(ext)): yield os.path.abspath(os.path.join(path, file)) relative_path = find_music("music", "emp3") error_list = [] for s in relative_path: try: id3r = id3reader.Reader(s) print("Artist: {}, Album: {}, Track: {}, Song: {}".format( id3r.get_value('performer'), id3r.get_value('album'), id3r.get_value('track'), id3r.get_value('title') )) except: # print("Error in this file: {}".format(s)) error_list.append(s) for e in error_list: print(e)