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}")