Я не думаю, что предыдущие ответы являются кросс-платформенными, поскольку они предполагают, что pathsep равен /
, как отмечено в некоторых комментариях.Также они игнорируют подкаталоги (которые могут иметь или не иметь значения для Pythonpadavan ... не совсем понятно из вопроса).Как насчет:
import os
import zipfile
z = zipfile.Zipfile('some.zip', 'r')
dirs = list(set([os.path.dirname(x) for x in z.namelist()]))
Если вы действительно хотите просто каталоги верхнего уровня, то объедините это с ответом agroszer для заключительного шага:
topdirs = [os.path.split(x)[0] for x in dirs]
(Конечно, последние два шага можно объединить:)