Módulo Tempfile de Python

Módulo Tempfile de Python
Freqüentemente em nossos programas, precisamos armazenar algumas informações temporárias sobre o estado do programa e objetos que podem ou não viver além do estado do próprio programa. Os dados que são salvos nesses arquivos podem não estar na forma legível por humanos ou mesmo em uma forma que pode ser usada por qualquer pessoa, exceto alguns programas, algoritmos ou hackers podem encontrar uma maneira de obter informações desses dados que podem sacrificar o Segurança do sistema. Então, precisamos criar lógica que cria esses arquivos, escreva alguns dados e depois exclua os arquivos também. E se houvesse algo que abstraça tantas operações em nosso programa? Parece que existe um módulo em python para o mesmo Tempfile módulo.

Exemplos com módulo Tempfile

Vamos começar com exemplos simples com o python Tempfile módulo aqui.

Criando arquivos temporários

A primeira coisa necessária para salvar dados temporários são os arquivos onde podemos armazenar esses dados. Isso pode ser feito usando o Arquivo temporário() função. A maior vantagem dessa função é quando um arquivo é criado com essa função, nenhum link para este arquivo é feito no sistema de arquivos do sistema e, portanto, não é possível para outros processos acessar esses arquivos.

Vejamos um programa simples que faz uso do Arquivo temporário() função:

OS de importação
Importar tempfile
# Usando PID em nome de arquivo para melhor identificação
arquivo = '/tmp/linuxhint_%s.txt ' % os.getpid ()
# Fornecendo o modo de arquivo
temp_file = aberto (arquivo, 'w+b')
tentar:
print ('temp_file: 0'.formato (temp_file))
print ('temp_file.Nome: 0 '.formato (temp_file.nome))
finalmente:
temp_file.fechar()
# Excluindo o arquivo temporário de si mesmo
OS.remover arquivo)
Print ('Metadados temporários do arquivo:')
temp_file = tempfile.Arquivo temporário()
tentar:
print ('temp_file: 0'.formato (temp_file))
print ('temp_file.Nome: 0 '.formato (temp_file.nome))
finalmente:
# Limpe o arquivo quando o fechamento é chamado
temp_file.fechar()

Aqui está o que recebemos com este comando:

Criando arquivo temporário

Este arquivo é excluído assim que o fechar() A função é chamada no Tempfile referência.

Lendo de arquivo temporário

Mesmo a leitura de um arquivo temporário é fácil e pode ser feita em uma única chamada de método no mesmo módulo. A vantagem dessa função é que Isso nos ajuda a evitar operações de IO complexas envolvidos se precisarmos fazer essas operações manualmente. Aqui está um programa que mostra essa função em ação:

OS de importação
Importar tempfile
tempfile = tempfile.Arquivo temporário()
tentar:
Print ('Escrevendo dados para tempfile:')
Tempfile.Escreva (os dados b'any podem ir aqui.')
Tempfile.procure (0)
Print ('Formulário de dados de leitura tempfile: \ n \ t 0'.formato (Tempfile.ler()))
finalmente:
Tempfile.fechar()

Vamos ver a saída para este comando:

Python Leia do arquivo temporário

Todo o texto nos arquivos temporários foi fornecido de volta com uma única chamada de método.

Escrevendo texto simples em arquivo temporário

Em nossos programas acima, todos os dados gravados em arquivos não estavam na forma de formato simples de texto simples. Se quisermos fazê -lo para operações de texto simples, podemos simplesmente modificar o modo de arquivo quando abrirmos o arquivo temporário para modificações:

Importar tempfile
filemode = 'w+t'
com tempfile.TemporaryFile (Mode = Filemode) como arquivo:
arquivo.Writelines (['Linux \ n', 'Ubuntu \ n']))
arquivo.procure (0)
para item no arquivo:
Imprimir (item.rstrip ())

Aqui está o que recebemos com este comando:

Escrevendo texto simples no arquivo

Criando arquivos temporários nomeados

Os arquivos que precisam ser abrangidos por vários processos devem ser nomeados para que um processo não os exclua quando for concluído. Aqui está como podemos criar um arquivo temporário nomeado:

OS de importação
Importar tempfile
tempfile = tempfile.NomeadoTemporaryFile ()
tentar:
print ('tempfile: 0'.formato (tempfile))
impressão ('temp.tempfile: 0 '.formato (Tempfile.nome))
finalmente:
# Excluindo o arquivo também
Tempfile.fechar()
impressão ('existe? : 0 '.formato (OS.caminho.Existe (tempfile.nome)))

Vamos ver a saída para este comando:

Nomeado Tempfile

Se não excluirmos o arquivo, podemos verificar sua existência em outro programa e usá -lo se ele existir no local especificado.

Fornecendo o nome do arquivo e prefixo do nome do arquivo

Para identificar facilmente os arquivos que pertencem aos nossos próprios processos no sistema de arquivos, podemos aplicar o sufixo e o prefixo ao nome do arquivo também:

Importar tempfile
tempfile = tempfile.NomeadoTemporaryFile (sufixo = '_ Ubuntu',
prefixo = 'linuxhint_',
dir = '/tmp',)
tentar:
Imprimir ('Tempfile:', Tempfile)
impressão ('tempfile.Nome: ', tempfile.nome)
finalmente:
Tempfile.fechar()

Aqui está o que recebemos com este comando:

Aplicando prefixo e sufixo ao nome do arquivo

Fornecemos três parâmetros ao método que atua como sufixo e prefixo para o nome do arquivo que será feito o local que especificamos.

Conclusão

Nesta lição, analisamos como podemos usar o módulo Python TempFile para gerenciar arquivos temporários em nosso código. Leia mais postagens baseadas em Python aqui.