Abertura e fechamento de um arquivo
Para ler dados de um arquivo de texto denominado “dados.txt ”, você precisa usar o método“ aberto ”que vem com as compilações oficiais do Python. Verifique o código de amostra abaixo:
f = aberto ('dados.txt ',' r ')f.perto()
A primeira declaração abre o “data.arquivo txt ”no modo“ r ”(somente leitura). O método “aberto” aceita um nome de arquivo e o modo para lidar com o arquivo como argumentos. Além do modo “r”, existem outros modos que serão explicados posteriormente. O trecho de código acima não executa nenhuma operação no arquivo aberto. O método “fechar” é usado para fechar o arquivo aberto de forma limpa para que a memória possa ser liberada e para evitar a corrupção de dados no arquivo aberto que pode acontecer às vezes se o arquivo não for fechado corretamente.
Em vez de usar o método “open” para lidar com a abertura e fechamento de arquivos, você pode combiná-lo com a palavra-chave “with” e usar a instrução “with open”.
com aberto ('dados.txt ',' r ') como f:passar
A principal vantagem de usar uma instrução "com aberto" é que o interpretador fecha automaticamente o arquivo aberto com segurança quando o bloco de código "com aberto" é analisado completamente. Embora o coletor de lixo em Python feche automaticamente os arquivos abertos depois de um tempo de acordo com as regras predefinidas, as instruções "com aberto" garantem que o arquivo seja fechado de forma limpa assim que o bloco de código for concluído para liberar recursos.
Lendo linhas de um arquivo de texto
Para ler o conteúdo de um arquivo, use o exemplo de código abaixo:
com aberto ('dados.txt ',' r ') como f:dados = f.leitura()
imprimir (dados)
Por exemplo, se “dados.txt ”arquivo tem 1-10 números, cada um em uma nova linha, você obterá a seguinte saída após executar o código acima:
12
3
4
5
6
7
8
9
10
Todo o despejo de dados dos “dados.arquivo txt ”é armazenado na variável“ data ”. Se quiser ler as linhas de uma lista, você pode usar os seguintes exemplos de código:
com aberto ('dados.txt ',' r ') como f:dados = f.readlines ()
imprimir (dados) com aberto ('dados.txt ',' r ') como f:
dados = lista (f)
imprimir (dados)
Observe que usar os trechos acima pode gerar o caractere “\ n” (nova linha) no final de cada elemento na lista. Para remover esses caracteres de nova linha, pode ser necessário percorrer a lista. Você pode criar uma nova lista e remover caracteres de nova linha usando o seguinte código:
data_list = []com aberto ('dados.txt ',' r ') como f:
para a linha em f:
data_list.append (linha.faixa())
imprimir (data_list)
Executar o código acima obterá o seguinte resultado:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']Gravando dados em um arquivo aberto
Para gravar dados em um arquivo que está sendo aberto usando a instrução “with open”, você terá que fornecer um modo de abertura diferente como argumento. Aqui estão alguns dos modos:
- 'a' - usado para anexar dados no final de um arquivo aberto, cria um novo arquivo se ele não existir
- 'w' - apaga o conteúdo do arquivo aberto e grava novos dados, cria um novo arquivo se ele não existir
- 'r' - modo somente leitura (modo padrão se nenhum argumento for fornecido)
- 'r +' - usado para leitura e escrita (a posição inicial é no início do arquivo)
- 'b' - o arquivo é aberto no modo binário (útil para arquivos binários não textuais), pode ser combinado com outros modos
- 'a +' - usado para ler e anexar, cria um novo arquivo se ele não existir
- 'w +' - usado para ler e escrever, cria um novo arquivo se ele não existir
Alguns trechos de código que usam modos diferentes para gravar dados estão listados abaixo.
Para gravar um novo conteúdo em um arquivo de texto enquanto apaga os dados existentes, use o seguinte exemplo:
com aberto ('dados.txt ',' w ') como f:f.escrever ("1 \ n2")
Depois de executar o snippet acima, 1-10 números no campo “dados.arquivo txt ”deve ser substituído por duas novas linhas.
Para adicionar linhas no início de um arquivo de texto, você precisa usar o método “buscar” para voltar à posição inicial do buffer de arquivo:
com aberto ('dados.txt ',' r + ') como f:dados = f.leitura()
f.procurar (0)
f.escrever ("- 1 \ n0 \ n")
f.escrever (dados)
Depois de executar o snippet acima, os números -1 e 0 serão adicionados às duas primeiras linhas em “dados.txt ”arquivos.
Para anexar dados ao final do arquivo, use o seguinte exemplo:
com aberto ('dados.txt ',' a ') como f:f.escrever ("11 \ n12")
Depois de executar o trecho acima, 11 e 12 números serão adicionados ao final do arquivo.
Conclusão
Classes e métodos integrados em Python fornecem uma maneira robusta de lidar com arquivos de texto. Com apenas algumas linhas de código você pode manipular os dados existentes em um arquivo, bem como inserir novas linhas.