• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Kratos

[Python] Compactando arquivos com zipfile

3 mensagens neste tópico

Um simples exemplo para se compactar um file com a lib zipfile (que é nativa do Python):

# pyZIP

import threading
import zipfile
import sys
import time

# Com uso de Thread
class WZip(threading.Thread):
  def __init__(self, infile, outfile):
	threading.Thread.__init__(self)
	self.infile = infile
	self.outfile = outfile
  def run(self):
	try:
		self.main = [self.outfile, 'w', zipfile.ZIP_DEFLATED]
		z = zipfile.ZipFile(self.main[0],self.main[1],self.main[2])
		z.write(self.infile)
		z.close()
	except:
		print "Erro: Houve um erro !!!"
		print "Verifique os arquivos\n"
		sys.exit()

# classe 2
class WuZip(WZip):
  def __init__(self,arqs, zips):
	self.arqs = arqs
	self.zips = zips
	zw = WZip(self.arqs, self.zips)
	if self.arqs == "":
		print "Erro: Arquivo origem nao existe\n"
	elif self.zips == "":
		print "Erro: Arquivo compactado (.zip) nao existe\n"
	else:
		zw.start()
		zw.join()
		print ' WuZip (zip) obteve sucesso para: ', self.arqs
		print

def teste():
    z = WZip('file_input.txt', 'ZIP_fileoutput.zip')
    z.start()
    z.join()
    print "WZip OK\n"

    time.sleep(2)
    WuZip('file_input2.txt', 'ZIP_fileoutput2.zip')
    print "WuZip Ok\n"	


if __name__ == "__main__":
    teste()
Kratos :D
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá Kratos, sou desenvolvedor Java Senior, todavia sou iniciante em python e estava a procura de um script para compactar um arquivo e acabei encontrando o seu exemplo, porém não está gerando o arquivo compactado. PIP e Pyhton dev estão instalados. Qual poderia ser meu erro?

Execução:
jesus@jesus ~/Projetos/Python $ python zippingfile.py
WZip OK

 WuZip (zip) obteve sucesso para:  file_input2.txt

WuZip Ok


Dados da versão
python --version
Python 2.7.12

pip --version
pip 8.1.2 from /home/jesus/.local/lib/python2.7/site-packages (python 2.7)

 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz agora um teste, e a classe está a funcionar.  O código estava só com uns problemas de indentação (que assumo que tenhas corrigido, visto que conseguiste executar a script).

Tendo em conta o output que obtivestes, esperaria que os ficheiros tivessem sido gerados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora