Pitão

Módulo Python tempfile

Módulo Python tempfile
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 salvos nesses arquivos podem não estar na forma legível por humanos ou mesmo em uma forma que possa ser usada por qualquer pessoa, mas alguns programas, algoritmos ou hackers podem encontrar uma maneira de obter informações desses dados que podem sacrificar o segurança do sistema. Portanto, precisamos criar a lógica que cria esses arquivos, gravar alguns dados e, em seguida, excluir os arquivos também. E se houvesse algo que abstrai tantas operações em nosso programa? Parece que existe um módulo em Python para o mesmo, o arquivo temporário módulo.

Exemplos com módulo tempfile

Começaremos com exemplos simples com o Python arquivo temporário módulo aqui.

Criação de arquivos temporários

A primeira coisa necessária para salvar os 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 desta função é que quando um arquivo é criado com esta função, nenhum link para este arquivo é feito no sistema de arquivos do sistema e assim, não é possível para outros processos acessarem estes arquivos.

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

importar os
importar arquivo temporário
# Usando PID no nome do arquivo para melhor identificação
arquivo = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Modo de fornecimento de arquivo
temp_file = open (arquivo, 'w + b')
tentar:
imprimir ('temp_file: 0'.formato (temp_file))
print ('temp_file.nome: 0 '.formato (temp_file.nome))
finalmente:
temp_file.perto()
# Excluindo nós mesmos o arquivo temporário
os.remover arquivo)
print ('TemporaryFile Metadata:')
temp_file = tempfile.Arquivo temporário()
tentar:
imprimir ('temp_file: 0'.formato (temp_file))
print ('temp_file.nome: 0 '.formato (temp_file.nome))
finalmente:
# Limpa o arquivo quando o fechamento é chamado
temp_file.perto()

Aqui está o que recebemos de volta com este comando:

Criando arquivo temporário

Este arquivo é excluído assim que o perto() função é chamada no arquivo temporário referência.

Lendo do arquivo temporário

Até 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 desta função é que isso nos ajuda a evitar operações complexas de IO envolvidos se precisarmos fazer essas operações manualmente. Aqui está um programa que mostra esta função em ação:

importar os
importar arquivo temporário
tempFile = tempfile.Arquivo temporário()
tentar:
print ('Gravando dados em tempFile:')
tempFile.escrever (b'Any dados podem ir aqui.')
tempFile.procurar (0)
print ('Lendo o formulário de dados tempFile: \ n \ t 0'.formato (tempFile.leitura()))
finalmente:
tempFile.perto()

Vamos ver a saída deste comando:

Python lido de arquivo temporário

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

Gravando texto simples em arquivo temporário

Em nossos programas acima, todos os dados gravados em arquivos não estavam na forma de um formato de texto simples. Se quisermos fazer isso para operações de texto simples, podemos apenas modificar o modo de arquivo ao abrir o arquivo temporário para modificações:

importar arquivo temporário
fileMode = 'w + t'
com tempfile.TemporaryFile (mode = fileMode) como arquivo:
Arquivo.writelines (['Linux \ n', 'Ubuntu \ n'])
Arquivo.procurar (0)
para o item no arquivo:
imprimir (item.rstrip ())

Aqui está o que recebemos de volta com este comando:

Escrever texto simples no arquivo

Criação de arquivos temporários nomeados

Os arquivos que precisam ser divididos em 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 nomeado temporário:

importar os
importar arquivo temporário
tempFile = tempfile.NamedTemporaryFile ()
tentar:
imprimir ('tempFile: 0'.formato (tempFile))
print ('temp.tempFile: 0 '.formato (tempFile.nome))
finalmente:
# Excluindo o arquivo também
tempFile.perto()
print ('Existe? : 0 '.formato (os.caminho.existe (tempFile.nome)))

Vamos ver a saída deste comando:

Arquivo temporário nomeado

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

Fornecimento de sufixo e prefixo do nome do arquivo

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

importar arquivo temporário
tempFile = tempfile.NamedTemporaryFile (sufixo = '_ ubuntu',
prefixo = 'linuxhint_',
dir = '/ tmp',)
tentar:
imprimir ('tempFile:', tempFile)
print ('tempFile.nome: ', tempFile.nome)
finalmente:
tempFile.perto()

Aqui está o que recebemos de volta com este comando:

Aplicando prefixo e sufixo ao nome do arquivo

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

Conclusão

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

Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...
0 A.D. Tutorial
Dos muitos jogos de estratégia que existem, 0 A.D. consegue se destacar como um título abrangente e um jogo muito profundo e tático, apesar de ser de ...
Tutorial Unity3D
Introdução ao Unity 3D Unity 3D é um poderoso motor de desenvolvimento de jogos. É uma plataforma cruzada que permite criar jogos para celular, web, d...