Sto cercando un modo per decomprimere i file zip annidati in python. Ad esempio, si consideri la seguente struttura (nomi ipotetici per la facilità):Unzip file zip annidati in python
- cartella
- ZipfileA.zip
- ZipfileA1.zip
- ZipfileA2.zip
- ZipfileB .zip
- ZipfileB1.zip
- ZipfileB2.zip
- ZipfileA.zip
... ecc. Sto cercando di accedere ai file di testo che si trovano nel secondo zip. Certamente non voglio estrarre tutto, dato che i numeri di taglio farebbero crashare il computer (ci sono diverse centinaia di zip nel primo strato e quasi 10.000 nel secondo strato (per zip)).
Ho giocato con il modulo 'zipfile' - Sono in grado di aprire il primo livello di file zip. Es .:
zipfile_obj = zipfile.ZipFile("/Folder/ZipfileA.zip")
next_layer_zip = zipfile_obj.open("ZipfileA1.zip")
Tuttavia, questo restituisce un'istanza "ZipExtFile" (non è un file o un'istanza file zip) - e non può quindi andare avanti e aprire questo particolare tipo di dati. Che non posso fare questo:
data = next_layer_zip.open(data.txt)
Posso tuttavia "leggere" questo file file zip con:
next_layer_zip.read()
Ma questo è del tutto inutile! (cioè può solo leggere dati compressi/goobledigook).
Qualcuno ha qualche idea su come potrei andare su questo (senza utilizzare ZipFile.extract) ??
Mi sono imbattuto in questo, http://pypi.python.org/pypi/zip_open/ - che sembra fare esattamente quello che voglio, ma non sembra funzionare per me. (continua a ricevere "[Errno 2] Nessun file o directory di questo tipo:" per i file che sto cercando di elaborare, usando quel modulo).
Qualsiasi idea sarebbe molto apprezzata !! Grazie in anticipo
per quelli di voi che usano 3.3, per risparmiare tempo 'TypeError: argomento stringa previsto, ottenuto 'byte' relativo alla riga' memory_zip.write (parent_zip.open (child_zip_path) .read()) 'non è sicuro del soluzione – user25064