Como ler CSV para listar em Python
-
Leia o CSV em uma lista em Python utilizando o
csv.reader -
Ler CSV em uma lista em Python utilizando o
csv.readercom outros Delimitadores
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 | 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
- Converter um dicionário em uma lista em Python
- Remova todas as ocorrências de um elemento de uma lista em Python
- Remover duplicatas da lista em Python
- Obter a Média de uma Lista em Python
- Qual é a diferença entre os métodos de lista anexar e estender
- Como Converter uma Lista para String em Python