Cześć.
Chciałbym przeczytać całą zawartość pewnego folderu, wraz z jego podkatalogami i plikami, oraz plikami w podkatalogach i tak dalej... Zrobiłem klasę Directory wraz z metodą getEntries() która rekurencyjnie wczytuje kolejne encje i wrzuca je odpowiednio do słownika entries['directories'] i entries[files]. Zresztą, spójrzcie sami:
class Directory:
entries = {
'directories' : {},
'files' : []
}
def __init__(self, pathToSet):
self.path = pathToSet
def getEntries(self):
contents = [entry for entry in self.path.iterdir()]
for entry in contents:
if entry.is_dir():
subdir = Directory(entry)
self.entries['directories'].update({entry.name : subdir.getEntries()})
else:
self.entries['files'].append(entry.name)
return self.entries
Wywołuje tę metodę podając ścieżkę do interesującego mnie folderu, ale rezultat mnie nie zadowala.
Załóżmy, że czytany folder ma strukturę tak jak poniżej:
Foldery:
pojazdy : samochod.txt, rower.txt
owoce : ananas.txt, jablko.txt
zwierzeta : kura.txt, slon.txt
Pliki:
plik1.txt, plik2.txt
Spodziewam sie nastepujacego wyniku
[
'directories' : { pojazdy : [ samochod.txt, rower.txt ], owoce : [ ananas.txt, jablko.txt ], zwierzeta : [ kura.txt, slon.txt] },
'files' : [ plik1.txt, plik2.txt ]
]
Lecz otrzymuję to:
[
'directories' : { pojazdy : [ ... ], owoce : [ ... ], zwierzeta : [ ... ] },
'files' : [ plik1.txt, plik2.txt, samochod.txt, rower.txt, ananas.txt, jablko.txt, kura.txt, slon.txt ]
]
Z góry dziękuję za pomoc,
Pozdrawiam