Publicação

Manipulando arquivos de texto em Python

foto de
Gabriel Goulart CONTEÚDO EM DESTAQUE

    Manipular arquivos pode ser uma boa maneira tanto de salvar informações que estão em sua aplicação em um arquivo externo como captar informações de um arquivo externo para colocá-las em sua aplicação. Uma forma bem fácil é salvar essas informações em um arquivo de texto. Para isso faremos uso das funções open, read e write e append. Vejamos o seguinte código:


arquivo = open("arquivo.txt", "w")

arquivo.write("Essa é a primeira linha escrita por nós. \n")
arquivo.write("Essa é a nossa segunda linha.")
arquivo.write("Essa deveria ser a terceira linha porém ainda é a segunda. \n")
arquivo.write("Essa sim é a terceira.")

arquivo.close()


    Primeiramente atribuímos a função open a uma variável chamada arquivo. nessa função passamos dois parâmetros: O primeiro é o nome do arquivo e o segundo o modo como estamos abrindo esse arquivo. Utilizamos o w para fazer a escrita em um arquivo. Caso o arquivo não exista, nesse modo o código criará um arquivo com o nome escrito no primeiro parâmetro. Porém tome muito cuidado! Ao utilizar "w" em um arquivo já existente, ele reescreverá todo o conteúdo do arquivo, fazendo com que você perca todos os dados que estavam nele! Logo falo sobre o método close. Agora vamos ver o seguinte:


arquivo = open("arquivo.txt","r")

print arquivo.read()

arquivo.close()


    Acima temos o nosso arquivo aberto em modo de leitura. A função read retorna todas as linhas ainda não lidas do nosso arquivo e ao printarmos na tela podemos ver que o resultado foi:

    "Essa é a primeira linha escrita por nós.

      Essa é a nossa segunda linha.Essa deveria ser a segunda linha porém ainda é a segunda

      Essa sim é a terceira."

    Caso o objetivo fosse ler apenas algumas linhas, poderíamos ter usado a função readline, que como o próprio nome já diz, lê linha por linha. Sempre que essa função é chamada ela retorna a linha atual e começa a apontar para o próximo.

    É de extrema importância que você sempre se lembre de chamar a função close sempre que terminar de fazer alguma manipulação no arquivo de leitura ou escrita. Nunca abra o arquivo com a função open e depois o faça de novo sem antes fechar a instância anterior. Um dos motivos da necessidade do close é que se tentarmos escrever em um arquivo e não fecharmos depois de terminar a escrita, as informações não chegarão ao arquivo e nada será escrito!

    Uma outra forma de manipular os arquivos usando a função open é a seguinte:

with open("arquivo.txt","r+") as arquivo:

    arquivo.write("Estou escrevendo")

    arquivo.readline()


    Dessa forma, avisamos ao Python que a função open deve ser atribuída à variável arquivo. Repare que não precisamos chamar a função close, porque quando abrimos o arquivo dessa forma o próprio python fecha o arquivo após sairmos do método acima. Repare também que foi usado um modo novo, o "r+". o "+" significa que estamos abrindo o arquivo tanto para leitura como para escrita. Utilizando o "r+" para escrever começaremos a partir da primeira linha e caso exista algo escrito no arquivo, as linhas serão reescritas conforme formos escrevendo. A diferença para o "w+" é que mesmo que reescrevêssemos apenas a primeira linha, todo o arquivo seria reescrito. Uma forma de escrever no final do arquivo é abrindo ele no modo "a". Vejamos o exemplo: 


with open("arquivo.txt","a+") as arquivo:
    arquivo.append("Estou escrevendo sempre")
    arquivo.append("no final do arquivo")
    arquivo.read()


    Usando a função append estaremos sempre escrevendo na ultima linha do arquivo, sem reescrever linha nenhuma!

Comentários