Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

264
Vistas
Comprimir archivo único

Estoy tratando de comprimir un solo archivo en python. Por alguna razón, me está costando entender la sintaxis. Lo que estoy tratando de hacer es mantener el archivo original y crear un nuevo archivo comprimido del original (como lo que haría una Mac o Windows si archiva un archivo).

Esto es lo que tengo hasta ahora:

 import zipfile myfilepath = '/tmp/%s' % self.file_name myzippath = myfilepath.replace('.xml', '.zip') zipfile.ZipFile(myzippath, 'w').write(open(myfilepath).read()) # does not zip the file properly
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si el archivo que se va a comprimir ( filename ) está en un directorio diferente llamado pathname , debe usar el parámetro arcname . De lo contrario, volverá a crear la jerarquía de carpetas completa en la carpeta de archivos.

 from zipfile import ZipFile import os with ZipFile(zip_file, 'w') as zipf: zipf.write(os.path.join(pathname,filename), arcname=filename)
over 4 years ago · Santiago Trujillo Denunciar

0

La forma correcta de comprimir el archivo es:

 zipfile.ZipFile('hello.zip', mode='w').write("hello.csv") # assume your xxx.py under the same dir with hello.csv

El documento oficial de Python dice :

ZipFile.write(filename, arcname=None, compress_type=None)

Escriba el archivo llamado nombre de archivo en el archivo, dándole el nombre de archivo arcname

Pasas open(filename).read() a write() . open(filename).read() es una sola cadena que contiene todo el contenido del archivo filename , arrojaría FileNotFoundError porque está tratando de encontrar un archivo con el nombre del contenido de la cadena.

over 4 years ago · Santiago Trujillo Denunciar

0

¿Intenta llamar a zipfile.close() después?

 from zipfile import ZipFile zipf = ZipFile("main.zip","w", zipfile.ZIP_DEFLATED) zipf.write("main.json") zipf.close()
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda