def id3_to_basename(path): try: process = subprocess.Popen( ['id3tool', path], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) except OSError: sys.stderr.write( "id3tool command failed. please check that it is installed" \ "to install on ubuntu:\n sudo aptitude install id3tool" ) id3tool_out, stderr = process.communicate() track = extract_field_from_id3tool_out(id3tool_out,"Track") artist = extract_field_from_id3tool_out(id3tool_out,"Artist") title = extract_field_from_id3tool_out(id3tool_out,"Song Title") year = extract_field_from_id3tool_out(id3tool_out,"Year") head, bname = os.path.split(path) bname_noext, dotext = os.path.splitext(bname) #bname_noext = " - ".join(filter(lambda p: p, [track, artist, title])) # if something is missing, remove it, and join with " - " if track: bname_noext = track + " - " + bname_noext bname_noext = utils.whitespaces_to_single_space(bname_noext) bname_noext = utils.remove_trailling_whitespace(bname_noext) bname_noext = utils.remove_heading_whitespace(bname_noext) return os.path.join(head, bname_noext + dotext)
def rename_func(path): return utils.whitespaces_to_single_space(path)