Python Tarfile

Python Tarfile
O formato do arquivo TAR é usado para armazenar ou arquivar vários arquivos em um arquivo. Isso é muito útil ao enviar ou transmitir uma grande quantidade/pacote de arquivos para a rede ou quando precisamos arquivar os arquivos mais antigos. Para o sistema operacional UNIX, o utilitário "alcatrão" é introduzido pela primeira vez. Seu objetivo é compilar vários arquivos em um arquivo de arquivo, freqüentemente chamado de tarball, simplificando a distribuição dos dados. O módulo Tarfile da Biblioteca Padrão do Python contém funções que ajudam na criação de arquivos ou arquivos alcatrão e extraindo dados conforme necessário do tarball. Os arquivos podem ser criados sem compressão ou usando GZIP, BZ2 e LZMA.

Qual é o módulo Tarfile em Python?

Não precisamos instalar o módulo Tarfile explicitamente porque faz parte da biblioteca padrão do Python; Tudo o que precisamos fazer é "importá -lo. A leitura e a escrita de arquivos TAR podem ser muito mais simples do que deveriam ser pelos métodos fornecidos pelo módulo Python "Tarfile". O módulo "Tarfile" embutido em Python fornece uma interface poderosa para escrever e ler arquivos de alcatrão.

Modos de arquivo para abrir os arquivos python alcaturch

A seguir, são apresentados alguns modos de arquivo que podem ser usados ​​no Python para abrir um Tarfile:

r: Abre um arquivo TAR para ler.

r: Abre um arquivo alcatrão e lê uma versão não compactada.

W ou W: Ativa a escrita não compactada, abrindo um arquivo alcatrão.

A ou A: Abre um arquivo TAR para que os dados possam ser anexados a ele sem compactação.

R: GZ: Abre um arquivo alcatrão compactado por GZIP para leitura.

W: GZ: Abre um arquivo de alcatrão compactado por GZIP para escrever.

R: BZ2: Abre um arquivo alcatrão compactado BZIP2 para leitura.

W: BZ2: Abre um arquivo de alcatrão compactado BZIP2 para escrever.

Agora, vamos usar o módulo Tarfile para entender como ele funciona no Python.

Criando um arquivo TAR

O módulo Tarfile em Python nos permite criar arquivos alcatrão. Primeiro, abra um arquivo TAR no modo de gravação. Em seguida, adicione um pacote de arquivos ou um único arquivo ao arquivo alcatrão.

Exemplo 1: Criando um arquivo TAR usando a função Open ()

Aqui, usamos a função Open () para criar um arquivo TAR e o método add () para adicionar outros arquivos ao arquivo TAR.

Saída

Aqui, a primeira entrada para o método Open () é o nome do nosso arquivo TAR que deve ser criado, seguido pelo argumento "W" para abrir o arquivo (Tarfile) no modo de gravação. O nome do arquivo que deve ser adicionado ou arquivado ao “.O arquivo Tar ”é passado dentro do método add () como entrada. Arquivamos três arquivos em nosso arquivo TAR usando a função add () em um objeto de arquivo

Exemplo 2: O OS.Função listdir () para criar e listar arquivos

O método listdir () retorna uma lista de arquivos e diretórios que residem em um diretório especificado. Usando o módulo Tarfile, primeiro criamos nosso tarfile. Em seguida, adicionamos os arquivos ao nosso arquivo TAR usando a função Add (). Depois de adicionar os arquivos ao arquivo TAR, obtemos uma lista de arquivos que foram arquivados no “.Arquivo Tar ”usando o sistema operacional.função listdir (). Para usar esta função, temos que importar o módulo do sistema operacional.

O arquivo TAR “Pasta” é criado arquivando todos os arquivos armazenados na pasta “dados”. A função getNames () retorna os nomes de arquivos que são armazenados no arquivo alcatrão "pasta".

Como verificar se um arquivo é alcatrão ou não

Usando o método is_tarfile () no módulo Tarfile, podemos determinar rapidamente se um arquivo possui o “.Tar ”extensão.

Passamos o nome do “my_file.arquivo tar ”no módulo is_tarfile () para verificar se é um arquivo alcatrão ou não. A função retorna true, o que significa que o arquivo especificado é um arquivo alcatrão. Vamos verificar se há outro arquivo.

Desde “Nota.txt ”não é um arquivo alcatrão, a função retorna falsa como saída.

Lendo um arquivo TAR

A Biblioteca Tarfile pode ajudá -lo a ler arquivos TAR sem extraí -los primeiro. O tarfile.Open (filepath, modo) pode ser usado para abrir um arquivo alcatrão em python. O arquivo/caminho é a localização absoluta ou relativa do arquivo que queremos ler. Diferentes tipos de parâmetros podem ser usados ​​no lugar do modo.

Também podemos ler o arquivo aberto no modo de compactação. Um método de compactação pode opcionalmente ser combinado com o modo de operação. Assim, o modo [: compressão] se torna a nova sintaxe. As abreviações que suportam os métodos de compressão são as seguintes:

  • gz para gzip
  • XZ para LZMA
  • BZ2 para BZ2

No código anterior, primeiro abrimos um arquivo de alcatrão compactado BZ2 para escrever. Em seguida, abrimos o arquivo alcatrão compactado do BZ2 para leitura.

Verificando o conteúdo do arquivo alcatrão

Usando a função getNames () do módulo Tarfile, podemos ver o conteúdo de um arquivo TAR sem extraí -los. A lista de nomes de arquivos é retornada pela função getNames () do módulo Tarfile. Aqui, abrimos o arquivo no modo "Read" para que "r" seja especificado como o segundo argumento na função Open ().

Nós oepn um “projeto.Arquivo Tar ”no modo de leitura. A função getNames () retorna os nomes de arquivos que são arquivados no “Projeto.Arquivo Tar ”. Para imprimir os nomes de conteúdo/arquivo, o loop for usado para iterar sobre os arquivos no arquivo alcatrão.

Anexando arquivos ao arquivo alcatrão

Usando a função Add () do módulo Tarfile, podemos adicionar diretamente arquivos a um arquivo TAR, assim como fizemos quando criamos o arquivo TAR. Ao contrário dos exemplos anteriores, "A" é passado para o método open () como o segundo argumento, porque o arquivo deve ser aberto no modo de apendamento.

Usamos o modo Anexo para abrir o “Projeto.Arquivo Tar ”. Cinco arquivos já estão presentes no “Paoject.Arquivo Tar ”. Anexamos mais três arquivos usando a função add () no objeto de arquivo.

Extraindo um arquivo específico de um arquivo de arquivo alcatrão

A função ExtractFile () da biblioteca Tarfile pode ser usada para extrair um arquivo de uma pasta arquivada. Este método aceita o nome do arquivo como entrada e extrai o arquivo especificado em nosso diretório de trabalho. Se você deseja extrair mais de um arquivo, você deve ligar para o ExtractFile () várias vezes. Ao extrair um membro como um objeto de arquivo do arquivo, um membro pode ser um objeto Tarinfo ou um nome de arquivo. Um “io.O objeto BufferErader ”retorna se um membro for um arquivo normal ou um link. Nenhum é apresentado para todos os outros membros existentes/atuais. O KeyError é elevado se um membro estiver ausente no arquivo de arquivo.

Os livros.O arquivo xml ”é extraído do“ projeto.Arquivo Tar ”.

Extraindo todos os arquivos do arquivo alcatrão

A função extraCall () da biblioteca Tarfile pode ser usada para extrair todo. A imagem a seguir mostra o diretório antes que os arquivos do arquivo arquivado sejam extraídos.

Todo o conteúdo do arquivo TAR é extraído na pasta em nosso diretório atual, os "dados", pelo método extraCall (). Agora, vamos extrair os arquivos do arquivo arquivado para esta pasta.

Saída

A função extraiu com sucesso todos os arquivos para a pasta especificada.

Conclusão

Neste artigo, aprendemos o que são arquivos alcatrão ou arquivos alcaturches e como usar o módulo Tarfile do Python para criar, acessar e gerenciar os arquivos alcatrão. Aprendemos os modos de arquivo que podemos usar para abrir os arquivos alcaturches em modos de leitura, escrita e compactação. Explicamos os métodos para listar os arquivos depois de arquivá -los no alcatrão. Discutimos como anexar os arquivos no arquivo alcatrão. Além disso, aprendemos como um arquivo específico ou todos os arquivos podem ser extraídos no diretório atual.