Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Rekurencyjne czytanie zawartości folderu zwraca nieoczekiwany wynik

$
0
0

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

 


Viewing all articles
Browse latest Browse all 21942

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra