Hi I have a data like this
data = [{'name': 'root/folder1/f1/s1.csv' , 'last_modified': datetime.datetime(2022, 8, 4, 18, 43, 13)},
{'name': 'root/folder2/f2/s2/file.csv', 'last_modified': datetime.datetime(2022, 8, 4, 18, 43, 13)},
{'name': 'root/folder2/f_1/f_2/f_3/file.csv', 'last_modified': datetime.datetime(2022, 8, 4, 18, 43, 13)},
{'name': 'root/folder2/f_1/f_2/f_3/f_4/f_5/file.csv','last_modified': datetime.datetime(2022, 8, 4, 18, 43, 13)},
{'name': 'root/folder2/f3/s3/file.csv', 'last_modified': datetime.datetime(2022, 8, 4, 18, 43, 13)},
{'name': 'root/folder3/f3/s3/s4/file4.csv','last_modified': datetime.datetime(2022, 8, 4, 18, 43, 13)},
{'name' : 'root/folder3/f3/s3/s4/s5/s6/file4.csv','last_modified': datetime.datetime(2022, 8, 4, 18, 43, 13)}
]
I want to get files in each folder with minimum path for example
in folder1 there is only 1 file then it will come same way.
in folder2 2 path carrying a file for example root/folder2/f_1/f_2/f_3 and this path root/folder2/f_1/f_2/f_3/f_4/f_5 so I want to get minimum here . and a 3rd path aswell exist in folder2 'root/folder2/f3/s3/file.csv' but it will come as it is. and folder3 will as well get file with minimum path like root/folder3/f3/s3/s4/file4.csv
Expected output
data = [{'name': 'root/folder1/f1/s1.csv'},
{'name': 'root/folder2/f2/s2/file.csv'},
{'name': 'root/folder2/f_1/f_2/f_3/file.csv'},
{'name': 'root/folder2/f3/s3/file.csv'},
{'name': 'root/folder3/f3/s3/s4/file4.csv'}
]
Tried till now: I am trying to get paths with minimum slashes but not sure how to check for each sub folder etc for example did this
data_dict = {}
for item in data:
dir = os.path.dirname(item['name'])
if dir not in data_dict:
item['count'] = 1
data_dict[dir] = item
else:
count = data_dic[dir]['count'] + 1
if item['last_modified'] > data_dict[dir]['last_modified']:
data_dict[dir] = item
data_dic[dir]['count'] = count
result = list(data_dict.values())
[line for line in data if len(line['name'].split("/")) <= 6]folder2/path is different/root/folder2/file.csvonly as I got file on root