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