Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

265
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda