Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

270
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!