Use python para zipar um arquivo e diretório

Um arquivo comprimido contém muitos arquivos, diretório e subdiretórios. Muitos aplicativos estão disponíveis para criar um arquivo comprimido de qualquer arquivo ou diretório grande e recuperar arquivos ou pastas extraindo um arquivo comprimido. Quando queremos transferir qualquer arquivo grande ou pasta pela Internet, então é melhor comprimir o conteúdo antes de transferir. Isto torna a tarefa mais rápida. Você pode usar scripts python para comprimir e extrair qualquer arquivo ou diretório grande. módulo zipfile de python é usado para fazer a tarefa. Como você pode usar python3 para comprimir qualquer arquivo ou diretório é mostrado neste tutorial usando vários exemplos.

Criar um novo arquivo chamado ‘zipcode1.py’ e adicionar o seguinte código. zipfile module is imported to compress the file. temp.zip is assigned as zip file name with write mode and next, the original filename, temp.txt and compress type are given as parameters in the write method.

import zipfile
zip_file = zipfile.ZipFile(‘temp.zip’, ‘w’)
zip_file.write(‘temp.txt’, compress_type=zipfile.ZIP_DEFLATED)
zip_file.close()

Executar o script

$ python3 zipcode1.py

O tamanho da temp.txt é 27 bytes e após compressão, o tamanho da temp.zip é 2 bytes.

Exemplo-2: Comprimindo um directório em particular

Criar um novo ficheiro chamado ‘zipcode2.py’ e adicionar o seguinte código. Um directório pode conter muitos ficheiros, pastas e subpastas. Para ler o conteúdo do diretório, o módulo de python é importado com o módulo zipfile para comprimir o diretório. Neste script, o diretório mydir é usado para compressão.

# importar módulos requeridos
importar os
importar zipfile
# Declare a função para retornar todos os caminhos de arquivos do diretório em particular
def retrieve_file_paths(dirName):
# setup file paths variable
filePaths =
# Leia todos os diretórios, subdiretórios e listas de arquivos
para root, diretórios, arquivos em os.walk(dirName):
for filename in files:
# Crie o caminho completo do arquivo usando os module.
filePath = os.path.join(root, filename)
filePaths.append(filePath)
# retorna todos os caminhos
retorna filePaths
# Declare a função principal
def main():dir_name = ‘mydir’
# Chamar a função para recuperar todos os arquivos e pastas do diretório atribuído
filePaths = recuperar_file_paths(dir_name)
# imprimir a lista de todos os arquivos a serem zipados
print(‘A seguinte lista de arquivos será zipada:’)
para ficheiroNome no ficheiroPaths:
print(fileName)
# escrevendo ficheiros num ficheiro zip
zip_file = zipfile.ZipFile(dir_name+’.zip’, ‘w’)
com zip_file:
# escrevendo cada ficheiro um por um
para ficheiro em filePaths:
zip_file.write(file)
print(dir_name+’.zip file is created successfully!’)
# Call the main function
if __name__ == “__main__”:
main()

Run the script

$ python3 zipcode2.py

O tamanho do mydir é 21 bytes e após compressão, o tamanho do mydir.zip é 2 bytes.

Exemplo-3: Comprimindo um diretório dado por argumento de linha de comando

Criar um novo arquivo chamado ‘zipcode3.py’ e adicionar o seguinte código. Para ler o valor da linha de comando, outro módulo python sys é importado com os e zipfile modules.

# importar módulos requeridos
importar os
importar sys
importar zipfile
# Declare a função para retornar todos os caminhos de arquivos de um diretório particular
def retrieve_file_paths(dirName):
# setup file paths variable
filePaths =
# Leia todos os diretórios, subdiretórios e listas de arquivos
para root, diretórios, arquivos em os.walk(dirName):
for filename in files:
# Crie o caminho completo do arquivo usando os module.
filePath = os.path.join(root, filename)
filePaths.append(filePath)
# retorna todos os caminhos
retorna filePaths
# Declare a função principal
def main():
# Verifique dois argumentos são dados no momento da execução do script
if len (sys.argv) != 2 :
print (“Você digitou o nome do diretório para zip”)
sys.exit (1)
# Defina o nome do diretório a partir do argumento de comando
dir_name = sys.argv
# Defina o nome do arquivo zip
zipFileName = dir_name + “.zip”
# Chame a função para recuperar todos os arquivos e pastas do diretório atribuído
filePaths = retrieve_file_paths(dir_name)
# imprimir a lista de arquivos a serem zipados
print(‘A seguinte lista de arquivos será zipada:’)
para fileName em filePaths:
print(fileName)
# escrever arquivos e pastas em um arquivo zip
zip_file = zipfile.ZipFile(zipFileName, ‘w’)
with zip_file:
# write each file seperately
for file in filePaths:
zip_file.write(file)
print(zipFileName+’ file is created successfully!’)
# Chame a função principal
se __name__ == “__main__”:
main()

Executar o script

$ python3 zipcode3.py

test é dado como nome de diretório no argumento de linha de comando. O tamanho do teste é 21 bytes e após a compressão, o tamanho do test.zip é 2 bytes.

Eu espero que este tutorial o ajude a usar python para comprimir qualquer arquivo ou diretório.

Deixe uma resposta

O seu endereço de email não será publicado.