Arquivo de texto de leitura Python

Resumo : neste tutorial, você aprende várias maneiras de ler arquivos de texto em Python.

DR

O seguinte mostra como ler todos os textos do readme.txtarquivo em uma string:

with open('readme.txt') as f:
    lines = f.readlines()Linguagem de código:  Python  ( python )

Etapas para ler um arquivo de texto em Python

Para ler um arquivo de texto em Python, siga estas etapas:

  • Primeiro, abra um arquivo de texto para leitura usando a open()função.
  • Segundo, leia o texto do arquivo de texto usando o método file read(), readline()ou readlines()do objeto file.
  • Terceiro, feche o arquivo usando o close()método file.

1) função abrir()

A open()função tem muitos parâmetros, mas você se concentrará nos dois primeiros:

open(path_to_file, mode)Linguagem de código:  Python  ( python )

O path_to_fileparâmetro especifica o caminho para o arquivo de texto.

Se o programa e o arquivo estiverem na mesma pasta, você precisará especificar apenas o nome do arquivo. Caso contrário, você precisará incluir o caminho para o arquivo, bem como o nome do arquivo.

Para especificar o caminho para o arquivo, use a barra ( '/'), mesmo se estiver trabalhando no Windows.

Por exemplo, se o arquivo readme.txtestiver armazenado na samplepasta como o programa, você precisará especificar o caminho para o arquivo comoc:/sample/readme.txt

O modeé um parâmetro opcional. É uma string que especifica o modo em que você deseja abrir o arquivo. A tabela a seguir mostra os modos disponíveis para abrir um arquivo de texto:

Modo Descrição
'r' Abrir arquivo de texto para leitura de texto
'w' Abra um arquivo de texto para escrever texto
'a' Abra um arquivo de texto para anexar texto

Por exemplo, para abrir um arquivo cujo nome está the-zen-of-python.txtarmazenado na mesma pasta do programa, você usa o seguinte código:

 f = open('the-zen-of-python.txt','r')Linguagem de código:  Python  ( python )

A open()função retorna um objeto de arquivo que você usará para ler texto de um arquivo de texto.

2) Métodos de leitura de texto

O objeto file fornece três métodos para ler texto de um arquivo de texto:

  • read(size)– lê algum conteúdo de um arquivo com base no tamanho opcional e retorna o conteúdo como uma string. Se você omitir o tamanho, o read()método lê de onde parou até o final do arquivo. Se o final de um arquivo for atingido, o read()método retornará uma string vazia.
  • readline()– lê uma única linha de um arquivo de texto e retorna a linha como uma string. Se o final de um arquivo for atingido, retornará readline() uma string vazia.
  • readlines()– lê todas as linhas do arquivo de texto em uma lista de strings. Este método é útil se você tiver um arquivo pequeno e quiser manipular todo o texto desse arquivo.

3) método fechar()

O arquivo que você abre permanecerá aberto até que você o feche usando o close()método.

É importante fechar o arquivo que não está mais em uso pelos seguintes motivos:

  • Primeiro, quando você abre um arquivo em seu script, o sistema de arquivos geralmente o bloqueia para que nenhum outro programa ou script possa usá-lo até que você o feche.
  • Segundo, seu sistema de arquivos possui um número limitado de descritores de arquivos que você pode criar antes que eles fiquem sem eles. Embora esse número possa ser alto, é possível abrir muitos arquivos e esgotar os recursos do sistema de arquivos.
  • Terceiro, deixar muitos arquivos abertos pode levar a condições de corrida que ocorrem quando vários processos tentam modificar um arquivo ao mesmo tempo e podem causar todos os tipos de comportamentos inesperados.

A seguir mostramos como chamar o close()método para fechar o arquivo:

f.close()Linguagem de código:  Python  ( python )

Para fechar o arquivo automaticamente sem chamar o close()método, você usa a withinstrução assim:

with open(path_to_file) as f:
    contents = f.readlines()Linguagem de código:  Python  ( python )

Na prática, você usará a withinstrução para fechar o arquivo automaticamente.

Lendo exemplos de arquivos de texto

Usaremos o arquivo-zen-of-python.txt para a demonstração.

O exemplo a seguir ilustra como usar o read()método para ler todo o conteúdo do the-zen-of-python.txtarquivo em uma string:

with open('the-zen-of-python.txt') as f:
    contents = f.read()
    print(contents)Linguagem de código:  Python  ( python )

Saída:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
...Linguagem de código:  Python  ( python )

O exemplo a seguir usa o readlines()método para ler o arquivo de texto e retorna o conteúdo do arquivo como uma lista de strings:

with open('the-zen-of-python.txt') as f:
    [print(line) for line in f.readlines()]Linguagem de código:  Python  ( python )

Saída:

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

...Linguagem de código:  Python  ( python )

O motivo pelo qual você vê uma linha em branco após cada linha de um arquivo é que cada linha do arquivo de texto possui um caractere de nova linha (\n). Para remover a linha em branco, você pode usar o strip()método. Por exemplo:

with open('the-zen-of-python.txt') as f:
    [print(line.strip()) for line in f.readlines()]Linguagem de código:  Python  ( python )

O exemplo a seguir mostra como usar o readline()para ler o arquivo de texto linha por linha:

with open('the-zen-of-python.txt') as f:
    while True:
        line = f.readline()
        if not line:
            break
        print(line.strip())Linguagem de código:  Python  ( python )

Saída:

Explicit is better than implicit.
Complex is better than complicated.
Flat is better than nested.
...Linguagem de código:  Python  ( python )

Uma maneira mais concisa de ler um arquivo de texto linha por linha

A open()função retorna um objeto de arquivo que é um objeto iterável . Portanto, você pode usar um forloop para iterar nas linhas de um arquivo de texto da seguinte maneira:

with open('the-zen-of-python.txt') as f:
    for line in f:
        print(line.strip())Linguagem de código:  Python  ( python )

Esta é uma maneira mais concisa de ler um arquivo de texto linha por linha.

Leia arquivos de texto UTF-8

O código dos exemplos anteriores funciona bem com arquivos de texto ASCII. No entanto, se você estiver lidando com outros idiomas, como japonês, chinês e coreano, o arquivo de texto não será um simples arquivo de texto ASCII. E provavelmente é um arquivo UTF-8 que usa mais do que apenas caracteres de texto ASCII padrão.

Para abrir um arquivo de texto UTF-8, você precisa passar encoding='utf-8'para a open()função para instruí-la a esperar caracteres UTF-8 do arquivo.

Para a demonstração, você usará o seguinte quotes.txtarquivo que contém algumas citações em japonês.

O seguinte mostra como percorrer o quotes.txtarquivo:

with open('quotes.txt', encoding='utf8') as f:
    for line in f:
        print(line.strip())Linguagem de código:  Python  ( python )

Saída:

Python lê arquivo de texto utf-8

Resumo

  • Use a open()função com o 'r'modo para abrir um arquivo de texto para leitura.
  • Use o método read(), readline()ou readlines()para ler um arquivo de texto.
  • Sempre feche um arquivo após concluir a leitura usando o close()método ou a withinstrução.
  • Use o encoding='utf-8'para ler o arquivo de texto UTF-8.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *