Source code for larigira.fsutils

import os
import fnmatch
import mimetypes


[docs]def scan_dir(dirname, extension=None): if extension is None: extension = "*" for root, dirnames, filenames in os.walk(dirname): for fname in fnmatch.filter(filenames, extension): yield os.path.join(root, fname)
[docs]def multi_fnmatch(fname, extensions): for ext in extensions: if fnmatch.fnmatch(fname, "*." + ext): return True return False
[docs]def is_audio(fname): mimetype = mimetypes.guess_type(fname)[0] if mimetype is None: return False return mimetype.split("/")[0] == "audio"
[docs]def scan_dir_audio(dirname, extensions=("mp3", "oga", "wav", "ogg")): for root, dirnames, filenames in os.walk(dirname): for fname in filenames: if is_audio(fname): yield os.path.join(root, fname)
[docs]def shortname(path): name = os.path.basename(path) # filename name = name.rsplit(".", 1)[0] # no extension name = "".join(c for c in name if c.isalnum()) # no strange chars return name