Cómo Python comprime y descomprime archivos zip
Sin embargo, el módulo zipfile en Python no puede manejar múltiples volúmenes, pero esto es poco común, por lo que usarlo en circunstancias normales es suficiente. A continuación acabo de registrar algunas operaciones básicas con archivos zip, que son suficientes en la mayoría de los casos.
El módulo zipfile te permite abrir o escribir archivos comprimidos. Por ejemplo:
importar archivo zip
z = zipfile.ZipFile('zipfilename', mode='r')
Esto abrirá un archivo zip si el modo Si es "w" o "a", significa escribir un archivo zip. Si es de escritura, puede ir seguido de un tercer parámetro:
compresión=zipfile.ZIP_DEFLATED o
compresión=zipfile.ZIP_STORED ZIP_DEFLATED es el indicador de compresión, que es necesario si se usa Compile el módulo zlib. Este último está simplemente empaquetado en zip, no comprimido.
Después de abrir el archivo comprimido, puede leer el contenido del archivo comprimido o guardarlo en el archivo comprimido según sea necesario.
Leer el contenido de un archivo comprimido
Es muy simple. El objeto zipfile proporciona un método de lectura (nombre). nombre es el punto de entrada al archivo dentro del archivo, y una vez que se completa la lectura, devolverá el contenido leído, que puede guardar en un archivo de su elección.
Escribir archivos comprimidos
Hay dos métodos para escribir archivos comprimidos, uno es escribir directamente en un archivo existente y el otro es escribir una cadena.
Para la primera forma de escribir usando el objeto zipfile, es decir, escribir (nombre de archivo, nombre de arco,
tipo_compresión), se ignorarán los dos últimos parámetros. El primer argumento es el nombre del archivo, el segundo argumento es el nombre que se usará en el archivo zip o, si no se proporciona, usa el mismo nombre que
nombre del archivo. compress_type es un indicador de compresión que anula los parámetros utilizados al crear archivos zip. El segundo método es utilizar el objeto zipfile para escribir writestr(zinfo_or_arcname,
bytes
, donde el primer parámetro es el objeto zipinfo o el nombre comprimido que se escribirá en el archivo zip. y el segundo El parámetro es una cadena. Utilice este método para organizar dinámicamente el contenido del archivo.
Cabe señalar que al leer, solo se puede leer el contenido, si desea expandir el archivo zip. De acuerdo con la estructura del directorio, debe hacerlo usted mismo. Estas operaciones, como crear directorios, crear archivos y escribir, pueden organizar dinámicamente la estructura del directorio en el archivo comprimido según sea necesario, de modo que el archivo comprimido no siga el directorio original. estructura
Para facilitar su uso, creé mi propia clase ZFile, principalmente para implementar la función de compresión en el menú contextual como winrar, es decir, comprimir el archivo comprimido en el directorio especificado y crearlo automáticamente. el subdirectorio correspondiente. El zip para funcionar en el menú contextual de winrar comprime el archivo comprimido en el directorio especificado y crea automáticamente el subdirectorio correspondiente