Exemplo-1: compactando um único arquivo
Crie um novo arquivo chamado 'CEP1.py ' e adicione o seguinte código. arquivo zip módulo é importado para compactar o arquivo. temp.fecho eclair é atribuído como nome de arquivo zip com modo de gravação e, em seguida, o nome do arquivo original, temp.TXT e o tipo de compressão são fornecidos como parâmetros no método de gravação.
importar arquivo zipzip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.escrever ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.perto()
Execute o script
$ python3 zipcode1.pyO tamanho de temp.TXT é 27 bytes e após a compressão, o tamanho do temp.fecho eclair é 2 bytes.
Exemplo 2: compactando um diretório específico
Crie um novo arquivo chamado 'CEP 2.py ' e adicione o seguinte código. Um diretório pode conter muitos arquivos, pastas e subpastas. Para ler o conteúdo do diretório, os módulo de python é importado com arquivo zip módulo para compactar o diretório. Neste script, meudir diretório é usado para compressão.
# importar módulos necessáriosimportar os
importar arquivo zip
# Declara a função para retornar todos os caminhos de arquivo do diretório particular
def retrieve_file_paths (dirName):
# variável de caminhos de arquivo de configuração
filePaths = []
# Leia todos os diretórios, subdiretórios e listas de arquivos
para raiz, diretórios, arquivos no sistema operacional.caminhar (dirName):
para nome de arquivo em arquivos:
# Crie o caminho de arquivo completo usando o módulo os.
filePath = os.caminho.juntar (raiz, nome do arquivo)
filePaths.append (filePath)
# retornar todos os caminhos
retornar filePaths
# Declara a função principal
def main ():
# Atribua o nome do diretório para zip
dir_name = 'meudir'
# Chame a função para recuperar todos os arquivos e pastas do diretório atribuído
filePaths = retrieve_file_paths (dir_name)
# imprimindo a lista de todos os arquivos a serem compactados
imprimir ('A seguinte lista de arquivos será compactada:')
para fileName em filePaths:
imprimir (nome do arquivo)
# gravando arquivos em um arquivo zip
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
com zip_file:
# gravando cada arquivo um por um
para arquivo em filePaths:
zip_file.escrever (arquivo)
imprimir (dir_name + '.arquivo zip criado com sucesso!')
# Chame a função principal
if __name__ == "__main__":
a Principal()
Execute o script
$ python3 zipcode2.pyO tamanho de meudir é 21 bytes e após a compressão, o tamanho do meudir.fecho eclair é 2 bytes.
Exemplo-3: compactando um diretório fornecido pelo argumento da linha de comando
Crie um novo arquivo chamado 'CEP 3.py ' e adicione o seguinte código. Para ler o valor da linha de comando, outro módulo python sys é importado com os e arquivo zip módulos.
# importar módulos necessáriosimportar os
import sys
importar arquivo zip
# Declara a função para retornar todos os caminhos de arquivo de um diretório particular
def retrieve_file_paths (dirName):
# variável de caminhos de arquivo de configuração
filePaths = []
# Leia todos os diretórios, subdiretórios e listas de arquivos
para raiz, diretórios, arquivos no sistema operacional.caminhar (dirName):
para nome de arquivo em arquivos:
# Crie o caminho de arquivo completo usando o módulo os.
filePath = os.caminho.juntar (raiz, nome do arquivo)
filePaths.append (filePath)
# retornar todos os caminhos
return filePaths
# Declare a função principal
def main ():
# Verifique se dois argumentos são fornecidos no momento da execução do script
se len (sys.argv) != 2:
print ("Você digitou o nome do diretório a ser compactado")
sys.saída (1)
# Defina o nome do diretório a partir do argumento do comando
dir_name = sys.argv [1]
# Defina o nome do arquivo zip
zipFileName = dir_name + ".fecho eclair"
# Chame a função para recuperar todos os arquivos e pastas do diretório atribuído
filePaths = retrieve_file_paths (dir_name)
# imprime a lista de arquivos a serem compactados
imprimir ('A seguinte lista de arquivos será compactada:')
para fileName em filePaths:
imprimir (nome do arquivo)
# grava arquivos e pastas em um arquivo zip
zip_file = zipfile.ZipFile (zipFileName, 'w')
com zip_file:
# escreve cada arquivo separadamente
para arquivo em filePaths:
zip_file.escrever (arquivo)
print (zipFileName + 'o arquivo foi criado com sucesso!')
# Chame a função principal
if __name__ == "__main__":
a Principal()
Execute o script
$ python3 zipcode3.pyteste é fornecido como o nome do diretório no argumento da linha de comando. O tamanho de teste é 21 bytes e após a compressão, o tamanho do teste.fecho eclair é 2 bytes.
Espero que este tutorial ajude você a usar Python para compactar qualquer arquivo ou diretório.