Como ler CSV para listar em Python

Afia Ghazanfar 10 outubro 2023
  1. Leia o CSV em uma lista em Python utilizando o csv.reader
  2. Ler CSV em uma lista em Python utilizando o csv.reader com outros Delimitadores
Como ler CSV para listar em Python

Este artigo introduz como ler CSV para listar em Python.

Suponhamos que tenhamos um arquivo CSV Employees.csv com o seguinte conteúdo,

Id Name Department email Salary
1 Sam Human Resource sam@gmail.com 65K
2 John Management john@gmail.com 58K
3 Tony IT tony@gmail.com 70K
4 Mike Accounts mike@gmail.com 35K

Se você abrir este arquivo usando algum editor de texto, seu conteúdo deve se parecer com este.

Id,Name,Department,email,Salary
1,Sam,Human Resource,sam@gmail.com,65K
2,John,Management,john@gmail.com,58K
3,Tonny,IT,tonny@gmail.com,70K
4,Mike,Accounts,mike@gmail.com,35K

Agora vamos importar os dados acima deste arquivo CSV para uma lista Python.

Leia o CSV em uma lista em Python utilizando o csv.reader

Python tem um módulo interno chamado CSV, que tem uma classe de leitura para ler o conteúdo de um arquivo CSV. O código de exemplo para ler o CSV para uma lista em Python é o seguinte.

from csv import reader

with open("Employees.csv", "r") as csv_file:
    csv_reader = reader(csv_file)
    # Passing the cav_reader object to list() to get a list of lists
    list_of_rows = list(csv_reader)
    print(list_of_rows)

O csv_reader = reader(csv_file) passa o arquivo ojbect csv_file para a função csv.reader() e recebe o objeto reader. Ele retorna um iterador, que é utilizado para iterar sobre todas as linhas do arquivo CSV.

list_of_rows = list(csv_reader) converte o objeto csv.reader para uma lista de listas, onde cada elemento da lista significa uma linha de CSV, e cada item da lista representa uma célula ou coluna em uma linha.

Resultado:

[['Id', 'Name', 'Company', 'email', 'Salary'], 
['1', 'Sam', 'Human Resource', 'sam@gmail.com', '65K'], 
['2', 'John', 'Management', 'john@gmail.com', '58K'], 
['3', 'Tonny', 'IT', 'tonny@gmail.com', '70K'], 
['4', 'Mike', 'Accounts', 'mike@gmail.com', '35K']]

Ler CSV em uma lista em Python utilizando o csv.reader com outros Delimitadores

A função csv.reader também fornece uma opção para ler os arquivos de texto nos quais os valores são separados por algum outro caractere em vez de uma vírgula. Por exemplo, o delimitador pode ser uma aba ou um espaço branco. Para ler tais arquivos, precisamos passar um parâmetro extra delimiter para a função de leitura. Veja o exemplo abaixo.

Se tivermos um arquivo Employees_TSV.csv com o mesmo conteúdo que em Employees.csv, mas separado por tabulação em vez de vírgula, ou seja

from csv import reader

with open("Employees_TSV.csv", "r") as csv_file:
    csv_reader = reader(csv_file, delimiter="\t")
    list_of_rows = list(csv_reader)
    print(list_of_rows)

Lemos os dados de um arquivo de valores separados por tabulação no código acima. delimiter = '\t' especifica que o delimitador no arquivo CSV é a aba.

A saída deste código é a mesma que a acima.

Artigo relacionado - Python List

Artigo relacionado - Python CSV