From b24682c97ac5a42528541c5bb5ad1bb2d6785254 Mon Sep 17 00:00:00 2001 From: brotoskyj Date: Tue, 26 Aug 2025 17:18:14 -0400 Subject: [PATCH] Rebased and Added optimized pathfinder --- pathfinder.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 pathfinder.py diff --git a/pathfinder.py b/pathfinder.py new file mode 100644 index 0000000..2781ea3 --- /dev/null +++ b/pathfinder.py @@ -0,0 +1,41 @@ +import os +import ast +from collections import defaultdict + +def load_and_find_common_dirs(filename, min_count=2): + dir_map = defaultdict(list) + + with open(filename, 'r') as file: + for line in file: + line = line.strip() + line = line.replace('\\', '/') + if not line: + continue + try: + item = ast.literal_eval(line) + if isinstance(item, list): + paths = item + elif isinstance(item, str): + paths = [item] + else: + continue + except Exception: + continue + + for path in paths: + parent_dir = os.path.dirname(path) + dir_map[parent_dir].append(path) + + # Filter directories with at least min_count files + common_dirs = {d: files for d, files in dir_map.items() if len(files) >= min_count} + return common_dirs + +# Example usage: +if __name__ == "__main__": + filename = "paths.txt" # Replace with your file + common_directories = load_and_find_common_dirs(filename) + + for directory, files in common_directories.items(): + print(f"\nDirectory: {directory}") + for f in files: + print(f" - {f}")