Rebased and Added optimized pathfinder
This commit is contained in:
@@ -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}")
|
||||
Reference in New Issue
Block a user