quarta-feira, 8 de abril de 2020

Manipulando arquivos em Python

Manipulando arquivos em Python


Em algum momento você vai precisar acessar arquivos no disco rígido do computador. Seja para ler um arquivo ou para gravar alguma informação do programa. Por exemplo, um programa que vai fazer várias operações matemáticas sobre um numero de dados e você só precisa do resultado. Não teria problema se as operações matemáticas fossem resolvidas rapidamente. Para resolver esse problema é só gravar o resultado das operações matemáticas no disco. Para ler ou gravar arquivos no disco é utilizado a função open.
A função open recebe dois parâmetros. O primeiro é o nome do arquivo para ser aberto/criado e o segundo é como o arquivo deve ser aberto: para leitura, para adicionar conteúdo, para escrita ou criar um novo arquivo.
Exemplo
arq = open('arquivo.txt', 'r')
print(arq.readline())
Nesse exemplo o arquivo “arquivo.txt” será aberto para leitura, somente leitura.
Exemplo
# abre arquivo para leitura
arq = open('arquivo.txt', 'r')
# abre arquivo para adicionar conteúdo
arq = open('arquivo.txt', 'a')
# abre arquivo para escrita
arq = open('arquivo.txt', 'w')
# cria um arquivo, se o arquivo existe ocorre um erro
arq = open('arquivo-02.txt', 'x')
Um arquivo pode ser aberto como um arquivo de texto ou um arquivo binário.
Exemplo
# abre um arquivo binario para leitura
arq = open('arquivo.txt', 'rb')
# abre um arquivo de texto para leitura
arq = open('arquivo.txt', 'rt')
Uma forma abreviada de abrir um arquivo de texto para leitura é passando apenas um parâmetro para a função open: o nome do arquivo.
Exemplo
arq = open('arquivo.txt')
print(arq.readline())

Lendo um arquivo de texto

Para ler um arquivo de texto é utilizado a função read. A função read ler o arquivo por completo.
Exemplo
arq = open('arquivo.txt')
# lê o arquivo todo
print(arq.read())

Lendo parte de um arquivo

Por padrão a função read ler o arquivo inteiro. Para mudar esse comportamento é só passar o numero de caracteres que você deseja ler como parâmetro da função read.
Exemplo
arq = open('arquivo.txt')
# lê 29 caracteres do arquivo
print(arq.read(29))

Lendo linhas de um arquivo de texto

Ficar contando caracteres de um texto para ler uma linha não é muito produtivo. Um jeito mais eficiente de ler uma linha de um arquivo de texto em python é utilizando a função readline. A função readline retorna uma linha do arquivo. E cada vez que a função é chamada ela segue para a próxima linha. Se o arquivo de texto tem três linhas é possível ler o texto todo chamando a função readline três vezes.
Exemplo
arq = open('arquivo.txt')
print(arq.readline())
print(arq.readline())
print(arq.readline())
Outro modo de ler um arquivo de texto, linha por linha, é com o loop for.
Exemplo
arq = open('arquivo.txt')
for i in arq:
  print(i)

Escrevendo num arquivo já existente

Existem dois modos de abrir um arquivo já existente para escrita o append (a) e o write (w). Quando um arquivo é aberto com o modo append o “curso” do arquivo é colocado no final e quando é aberto com write o cursor é colocado no inicio. O modo append é utilizado para adicionar conteúdo ao arquivo e o write sobrescreve o conteúdo antigo com o novo.
Exemplo
# abre o arquivo para escrita
arq = open('arquivo.txt', 'w')
arq.write('Apaguei o conteúdo antigo! 3:)\n')
arq.close()

# abre o arquivo para adicionar conteúdo
arq = open('arquivo.txt', 'a')
arq.write('Não apaguei nada! 8|')
arq.close()

arq = open('arquivo.txt', 'r')
print(arq.read())
arq.close()

Fechando arquivos

No exemplo acima repare que utilizamos a função close três vezes. Utilizamos a função close para efetivarmos as mudanças no arquivo. Com a função close o buffer é descarregado no disco e as alterações passam a ser permanentes.

Criando um novo arquivo

Um arquivo pode ser criado com a função open passando o nome do arquivo como parâmetro e o modo de abertura do arquivo. Abrindo o arquivo no modo append (a), write (w) e create (x) um novo arquivo será criado. Com o modo append o arquivo será criado se o arquivo passado como parâmetro não existir, com o modo write o arquivo será criado se o arquivo não existir e com o modo create o arquivo será criado apenas se o arquivo não existir. Se o arquivo existir ocorre um erro.
Exemplo
# se o arquivo "umarquivo.txt" não existir ele criado
arq = open('umarquivo.txt', 'a')
# cria o arquivo se ele não existir
arq = open('umarquivo.txt', 'w')
# se o arquivo existir ocorre um erro
arq = open('umarquivo.txt', 'x')

Verificando se um arquivo existe

Para verificar se um arquivo existe vamos precisar importar do módulo os a classe path e utilizar a função exists.
Exemplo
from os import path
if path.exists('arquivo.txt'):
  print('O arquivo existe')
else:
  print('O arquivo não existe')

Deletando um arquivo

Para deletar um arquivo utilizamos a função remove do módulo os.
Exemplo
import os
os.remove('arquivo.txt')
Nesses exemplos utilizamos apenas o nome do arquivo. Porque o arquivo está na mesma pasta do arquivo do nosso programa. Para criar ou deletar arquivos em outras pastas é só passar o caminho completo do arquivo.

0 comentários:

Postar um comentário