fsutils.py 685 B

123456789101112131415161718192021222324
  1. import os
  2. import fnmatch
  3. def scan_dir(dirname, extension=None):
  4. if extension is None:
  5. extension = '*'
  6. for root, dirnames, filenames in os.walk(dirname):
  7. for fname in fnmatch.filter(filenames, extension):
  8. yield os.path.join(root, fname)
  9. def multi_fnmatch(fname, extensions):
  10. for ext in extensions:
  11. if fnmatch.fnmatch(fname, '*.' + ext):
  12. return True
  13. return False
  14. def scan_dir_audio(dirname, extensions=('mp3', 'oga', 'wav', 'ogg')):
  15. for root, dirnames, filenames in os.walk(dirname):
  16. for fname in filenames:
  17. if multi_fnmatch(fname, extensions):
  18. yield os.path.join(root, fname)