Python Archivo ZIP con ejemplo

⚡ Resumen inteligente

Python crea archivos ZIP con los módulos integrados shutil y zipfile. Aquí aprenderá a comprimir un directorio completo usando make_archive(), comprimir archivos específicos con ZipFile y extract, lista y lee el contenido del archivo.

  • 🗜️ crear_archivo(): shutil.make_archive() comprime un directorio completo en un archivo .zip.
  • 📄 ZipFile.write(): ZipFile.write() agrega archivos específicos a un archivo comprimido uno por uno.
  • 📂 extracalto(): ZipFile.extracLa función tall() descomprime todos los archivos de un archivo comprimido en una carpeta.
  • 📋 lista de nombres(): ZipFile.namelist() muestra los nombres de los archivos dentro de un archivo ZIP.
  • 🤖 Ayuda de IA: Las herramientas de IA como Copilot generan códigos zip y unzip al instante.

Python Archivo zip

Python le permite crear rápidamente archivos zip/tar.

El siguiente comando comprimirá todo el directorio

shutil.make_archive(output_filename, 'zip', dir_name)

El siguiente comando le brinda control sobre los archivos que desea archivar.

ZipFile.write(filename)

Cómo comprimir un directorio completo en ZIP Python

Estos son los pasos para crear un archivo Zip en Python

Paso 1) Para crear un archivo de almacenamiento desde PythonAsegúrese de que la declaración de importación sea correcta y esté en orden. Aquí, la declaración de importación para el archivo es from shutil import make_archive

Python ZIP

Code Explicación

  • Importar la clase make_archive desde el módulo shutil
  • Utilice la función de división para dividir el directorio y el nombre del archivo de la ruta a la ubicación del archivo de texto (guru99)
  • Luego llamamos al módulo “shutil.make_archive(“guru99 archive, “zip”, root_dir)” para crear un archivo de almacenamiento, que estará en formato zip.
  • Luego pasamos el directorio raíz de las cosas que queremos comprimir. Entonces todo lo que esté en el directorio se comprimirá.
  • Cuando ejecuta el código, puede ver que el archivo zip se crea en el lado derecho del panel.

Paso 2) Una vez que haya creado su archivo de almacenamiento, puede hacer clic derecho en el archivo y seleccionar el sistema operativo, y se mostrarán sus archivos de almacenamiento como se muestra a continuación.

Python ZIP

Ahora su archivo archive.zip aparecerá en su sistema operativo (Windows explorer)

Python ZIP

Paso 3) Al hacer doble clic en el archivo, verá la lista de todos los archivos que contiene.

Python ZIP

Cómo comprimir archivos específicos usando ZipFile

Paso 4) In Python Podemos tener más control sobre el archivo ya que podemos definir qué archivo específico incluir en el archivo. En nuestro caso, incluiremos dos archivos en el archivo. “guru99.txt” y “guru99.txt.bak”.

Python ZIP

Code Explicación

  • Importar clase Zipfile desde un archivo zip Python módulo. Este módulo brinda control total sobre la creación de archivos zip.
  • Creamos un nuevo Zipfile con nombre (“testguru99.zip, “w”)
  • Para crear una nueva clase Zipfile, es necesario pasar permiso porque es un archivo, por lo que debe escribir información en el archivo como newzip.
  • Usamos la variable "newzip" para referirnos al archivo zip que creamos.
  • Usando la función de escritura en la variable “newzip”, agregamos los archivos “guru99.txt” y “guru99.txt.bak” al archivo

Cuando ejecuta el código, puede ver que el archivo se crea en el lado derecho del panel con el nombre "guru99.zip".

Nota: : Aquí no damos ningún comando para "cerrar" el archivo como "newzip.close" porque usamos el bloqueo de alcance "Con", por lo que cuando el programa queda fuera de este alcance, el archivo se limpiará y se cerrará automáticamente.

Paso 5) Cuando -> haga clic derecho en el archivo (testguru99.zip) y -> seleccione su sistema operativo (Windows explorer), mostrará los archivos almacenados en la carpeta como se muestra a continuación.

Python ZIP

Al hacer doble clic en el archivo “testguru99.zip”, se abrirá otra ventana y en ella se mostrarán los archivos incluidos en ella.

Python ZIP

Paquete COMPLETE Python Code para crear un archivo ZIP

Aquí está el código completo

Python 2 Ejemplo

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

def main():
# Check if file exists
	if path.exists("guru99.txt"):
# get the path to the file in the current directory
	src = path.realpath("guru99.txt");
# rename the original file
	os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
	root_dir,tail = path.split(src)
    shutil.make_archive("guru99 archive", "zip", root_dir)
# more fine-grained control over ZIP files
	with ZipFile("testguru99.zip","w") as newzip:
	newzip.write("guru99.txt")
	    newzip.write("guru99.txt.bak")
if __name__== "__main__":
	  main()

Python 3 Ejemplo

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

    # Check if file exists
       if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    # rename the original file
        os.rename("career.guru99.txt","guru99.txt")
    # now put things into a ZIP archive
        root_dir,tail = path.split(src)
        shutil.make_archive("guru99 archive","zip",root_dir)
    # more fine-grained control over ZIP files
        with ZipFile("testguru99.zip", "w") as newzip:
            newzip.write("guru99.txt")
            newzip.write("guru99.txt.bak")

Cómo hacer Extract (Descomprimir) un archivo ZIP en Python

Para descomprimir un archivo, ábralo en modo de lectura con ZipFile y llame a extracalto() a extraccada archivo, o extract() para extraer un solo miembro.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    myzip.extractall("extracted_files")

La extracEl método tall() escribe todos los archivos archivados en la carpeta que se le pasa como argumento.

Cómo listar los archivos en un archivo ZIP Archive

Puedes inspeccionar un archivo sin extracting it. El método namelist() devuelve los nombres de todos los archivos almacenados dentro del ZIP.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    print(myzip.namelist())

Esto imprime una lista de los nombres de los archivos contenidos en el archivo comprimido.

Cómo leer un archivo dentro de un archivo ZIP Archive

Puedes leer un archivo miembro directamente desde el archivo comprimido sin descomprimirlo.ping guárdalo en el disco usando el método open() de ZipFile.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    with myzip.open("guru99.txt") as f:
        print(f.read())

Esto resulta útil cuando solo se necesita el contenido de un archivo de un archivo comprimido grande.

Preguntas Frecuentes

Utilice shutil.make_archive(name, 'zip', root_dir) para comprimir un directorio, o abra un ZipFile en modo de escritura y llame a write() para agregar archivos específicos al archivo.

shutil.make_archive() comprime un directorio completo en una sola llamada, mientras que zipfile.ZipFile ofrece un control más preciso, permitiéndote agregar, leer o extraer archivos.tracarchivos individuales dentro del archivo comprimido.

Abra el archivo con ZipFile('file.zip', 'r') y llame a extracalto('carpeta') a extractodo, o extract('nombre') para extraer un único archivo del archivo comprimido.

Abra el archivo ZipFile en modo de lectura y llame a namelist(), que devuelve una lista de todos los nombres de archivo almacenados en el archivo sin excepción.traccualquiera de ellos.

La instrucción `with` cierra automáticamente el archivo cuando finaliza el bloque, incluso si se produce un error, por lo que no es necesario llamar a `close()` manualmente.

Los asistentes de IA como GitHub Copilot autocompletan las llamadas a ZipFile y make_archive(), y generan bucles que comprimen o descomprimen muchos archivos a partir de una descripción en lenguaje natural.

Sí. Las herramientas con inteligencia artificial pueden automatizar la escritura de scripts de copia de seguridad y archivado, elegir entre shutil y zipfile, y añadir gestión de errores para archivos faltantes o archivos corruptos.

Sí. Abra el archivo ZipFile y luego use su método open() en un archivo miembro para leer su contenido directamente, sin extracguardando todo el archivo en el disco.

Resumir este post con: