1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # Copyright (c) 2023 Felix Kleinsteuber and Computer Vision Group, Friedrich Schiller University Jena
- # This file defines helper functions for processing files.
- from glob import glob
- import os
- import pickle
- expected_subfolders = sorted(["Motion", "Lapse", "Full"])
- def list_folders(path: str) -> list:
- """Returns the names of all immediate child folders of path.
- Args:
- path (str): path to search
- Returns:
- list: list of all child folder names
- """
- return [name for name in os.listdir(path) if os.path.isdir(os.path.join(path, name))]
- def list_jpegs_recursive(path: str) -> list:
- """Recursively lists all jpeg files in path.
- Args:
- path (str): path to search
- Returns:
- list: list of all jpeg files
- """
- print(os.path.join(path, "**/*.jpg"))
- return [name for name in glob(os.path.join(path, "**/*.jpg"), recursive=True) if os.path.isfile(os.path.join(path, name))]
- def verify_expected_subfolders(session_path: str):
- """Assert that the given session folder contains exactly the three subfolders Motion, Lapse, Full.
- Args:
- session_path (str): session folder path
- """
- subfolders = list_folders(session_path)
- if sorted(subfolders) != sorted(expected_subfolders):
- raise AssertionError(f"{session_path}: Expected subfolders {expected_subfolders} but found {subfolders}")
- # Pickle helpers
- def dump(filename: str, data):
- """Dumps data using pickle.
- Args:
- filename (str): Target file name.
- data (any): Data.
- """
- with open(filename, "wb") as f:
- pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL)
- def load(filename: str):
- """Loads data using pickle.
- Args:
- filename (str): Target file name.
- Returns:
- any: loaded data
- """
- with open(filename, "rb") as f:
- return pickle.load(f)
|