Nie sądzę wcześniejsze odpowiedzi są kompatybilne z różnymi platformami, ponieważ przyjmują, że pathsep jest /
, jak zauważono w niektórych komentarzach. Ignorują także podkatalogi (które mogą lub nie mają znaczenia dla Pythonpadavan ... nie były całkowicie jasne od pytania). Co o:
import os
import zipfile
z = zipfile.Zipfile('some.zip', 'r')
dirs = list(set([os.path.dirname(x) for x in z.namelist()]))
Jeśli naprawdę chcesz katalogi najwyższego poziomu, a następnie połączyć to z odpowiedzią agroszer jest na końcowym etapie:
topdirs = [os.path.split(x)[0] for x in dirs]
(Oczywiście, ostatnie dwa kroki mogłyby być połączone :)
mogę uzyskać listę żądany folder z pełną listę otherways do o, ale mam więcej GB zip z wieloma 10000 folderami. Chcę tylko szybsze wyszukiwanie. – Pythonpadavan
@Pythonpadavan: Istnieje rozwiązanie, ale nie jest to pythonic sposób działania.To będzie działać tylko w systemie Linux. >>> os.system ("unzip -l zip.zip | grep/$") 0 2011-06 -28 22:59 zip/one/ 0 'Zamień 'zip.zip' na" # filename " – Kracekumar
Dzięki, ale sysystem operacyjny jest podany i zgadnij co; jest Windows. – Pythonpadavan