sto usando il codice corrente per estrarre i file da un file zip mantenendo la struttura di directory:file estratto da zip, senza mantenere la cartella di livello superiore con il pitone zipfile
zip_file = zipfile.ZipFile('archive.zip', 'r')
zip_file.extractall('/dir/to/extract/files/')
zip_file.close()
Ecco una struttura per un esempio di file zip:
/dir1/file.jpg
/dir1/file1.jpg
/dir1/file2.jpg
alla fine voglio questo:
/dir/to/extract/file.jpg
/dir/to/extract/file1.jpg
/dir/to/extract/file2.jpg
Ma DEVO gnora solo se il file zip ha una cartella di livello superiore con tutti i file al suo interno, in modo che quando estraggo una zip con questa struttura:
/dir1/file.jpg
/dir1/file1.jpg
/dir1/file2.jpg
/dir2/file.txt
/file.mp3
dovrebbe rimanere simile a questo:
/dir/to/extract/dir1/file.jpg
/dir/to/extract/dir1/file1.jpg
/dir/to/extract/dir1/file2.jpg
/dir/to/extract/dir2/file.txt
/dir/to/extract/file.mp3
Tutte le idee ?
maggio si aggiungere alcuni commenti al fine di capire meglio cosa sta succedendo qui, per favore? – aturegano
@aturegano. Ho aggiunto alcuni commenti al codice di esempio. I nomi file degli oggetti zipinfo sono scrivibili. Quindi lo script rimuove il prefisso comune da tutti i file nell'archivio, prima di estrarli nella directory di destinazione. – ekhumoro