fsutils.py 892 B

12345678910111213141516171819202122232425262728293031
  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)
  19. def shortname(path):
  20. name = os.path.basename(path) # filename
  21. name = name.rsplit('.', 1)[0] # no extension
  22. name = ''.join(c for c in name if c.isalnum()) # no strange chars
  23. return name