estoy usando el código actual para extraer los archivos de un archivo zip, manteniendo la estructura de directorios:Extrae los archivos de ZIP sin guardar la carpeta de nivel superior con el archivo zip pitón
zip_file = zipfile.ZipFile('archive.zip', 'r')
zip_file.extractall('/dir/to/extract/files/')
zip_file.close()
Aquí es una estructura de un ejemplo de archivo zip:
/dir1/file.jpg
/dir1/file1.jpg
/dir1/file2.jpg
al final quiero esto:
/dir/to/extract/file.jpg
/dir/to/extract/file1.jpg
/dir/to/extract/file2.jpg
Pero ¿Debo gnore sólo si el archivo zip tiene una carpeta de nivel superior con todos los archivos en su interior, por lo que cuando extraigo una postal con esta estructura:
/dir1/file.jpg
/dir1/file1.jpg
/dir1/file2.jpg
/dir2/file.txt
/file.mp3
Debe quedar así:
/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
Todas las ideas ?
de mayo que añadir algunos comentarios con el fin de entender mejor lo que está pasando aquí, por favor? – aturegano
@aturegano. Agregué algunos comentarios al código de ejemplo. Los nombres de archivo de los objetos zipinfo son escribibles. Entonces, la secuencia de comandos elimina el prefijo común de todos los archivos en el archivo, antes de extraerlos al directorio de destino. – ekhumoro