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