Я ищу способ определения файлов dist. xml, которые находятся в самом верхнем каталоге.
Например, у меня есть этот список списка каталогов,
/opt/pictures/dist.xml
/opt/docs_old/dist.xml
/opt/public/dist.xml
/opt/documents/server/dist.xml
/opt/documents/dist.xml
/opt/documents/web/dist.xml
/opt/documents/class/dist.xml
/opt/documents/lessons/1/dist.xml
/opt/documents/lessons/2/dist.xml
/opt/documents/lessons/3/dist.xml
/opt/documents/lessons/4/dist.xml
/opt/documents/lessons/5/dist.xml
/opt/music/service/day/dist.xml
/opt/music/service/week/dist.xml
/opt/music/service/month/dist.xml
/opt/music/service/month/1/dist.xml
/opt/music/service/month/2/dist.xml
и я хочу получить этот вывод вместо
/opt/pictures/dist.xml
/opt/docs_old/dist.xml
/opt/public/dist.xml
/opt/documents/dist.xml
/opt/music/service/day/dist.xml
/opt/music/service/week/dist.xml
/opt/music/service/month/dist.xml
У меня есть следующий код, который, кажется, выполняет эту работу, задаваясь вопросом, есть ли способ ускорить или очистить код,
from pathlib import Path
paths = ['/opt/pictures/dist.xml', '/opt/docs_old/dist.xml', '/opt/public/dist.xml', '/opt/documents/server/dist.xml', '/opt/documents/dist.xml', '/opt/documents/web/dist.xml', '/opt/documents/class/dist.xml', '/opt/documents/lessons/1/dist.xml', '/opt/documents/lessons/2/dist.xml', '/opt/documents/lessons/3/dist.xml', '/opt/documents/lessons/4/dist.xml', '/opt/documents/lessons/5/dist.xml', '/opt/music/service/day/dist.xml', '/opt/music/service/week/dist.xml', '/opt/music/service/month/dist.xml', '/opt/music/service/month/1/dist.xml', '/opt/music/service/month/2/dist.xml']
paths = list(set(paths))
paths_folder = [str(Path(p).parent) for p in paths]
to_remove = []
for idx, val in enumerate(paths_folder):
for b in Path(val).parents:
if str(b) in paths_folder:
to_remove.append(idx)
paths_folder = [i for j, i in enumerate(paths_folder) if j not in to_remove]
paths_folder = [p + '/dist.xml' for p in paths_folder]
print(paths_folder)