Pitão

Use python para compactar um arquivo e diretório

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

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 zip
zip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.escrever ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.perto()

Execute o script

$ python3 zipcode1.py

O 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ários
 
importar 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.py

O 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ários
 
importar 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.py

teste é 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.

Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...
Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...
Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...