no creo que las respuestas anteriores son compatibles multiplataforma ya que suponen que pathsep es /
como se señala en algunos de los comentarios. También ignoran los subdirectorios (que pueden o no importar a Pythonpadavan ... no estaba del todo claro desde la pregunta). ¿Qué hay de:
import os
import zipfile
z = zipfile.Zipfile('some.zip', 'r')
dirs = list(set([os.path.dirname(x) for x in z.namelist()]))
Si realmente quiere directorios de nivel superior, a continuación, combinar esto con la respuesta agroszer 's para un paso final:
topdirs = [os.path.split(x)[0] for x in dirs]
(Por supuesto, los dos últimos pasos podría ser combinado :)
yo puede conseguir la lista de carpetas que desee de la lista de códigos se otherways o, pero tengo más GB de zip con muchas carpetas de 10000. Solo quiero una búsqueda más rápida. – Pythonpadavan
@Pythonpadavan: Hay una solución, pero no es una manera pitónica de hacerlo. Funcionará solo en Linux. >>> os.system ("unzip -l zip.zip | grep/$") 0 2011-06 -28 22:59 zip/one/ 0' Reemplazar 'zip.zip' con su' nombre_de_archivo' – Kracekumar
Gracias pero se da el sistema de operación, y adivinen qué; es Windows. – Pythonpadavan