postprocess_folders.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env python
  2. if __name__ != '__main__': raise Exception("Do not import me!")
  3. import os
  4. import numpy as np
  5. import re
  6. import hashlib
  7. import logging
  8. from cvargparse import Arg
  9. from os.path import join, basename, dirname, isdir
  10. from tqdm import tqdm
  11. from collections import OrderedDict
  12. from utils import parser
  13. from utils import imaging
  14. def rename(path, new_folder):
  15. parent = dirname(path)
  16. new_path = join(parent, new_folder)
  17. assert not isdir(new_path), f"Folder already exists: {new_path}!"
  18. # print(path, "->", new_path)
  19. os.rename(path, new_path)
  20. return new_path
  21. def main(args):
  22. class_names = imaging.get_classnames(args.classnames)
  23. content = imaging.get_content(args.folder, args.extensions)
  24. for root, fnames in tqdm(content):
  25. folder = basename(root)
  26. if folder not in class_names:
  27. assert folder in class_names.values(), f"\"{folder}\" has not valid name!"
  28. fpaths = [join(root, fname) for fname in fnames]
  29. new_path = rename(root, class_names[folder])
  30. # import pdb; pdb.set_trace()
  31. main(parser.parse_args([
  32. Arg("classnames")
  33. ]))