Como ler o arquivo CSV em Python. Leitura e gravação de arquivos CSV
O que é um arquivo CSV?
Um arquivo CSV é um tipo simples de arquivo de texto simples que usa uma estrutura específica para organizar dados tabulares. O formato padrão de um arquivo CSV é definido por dados de linhas e colunas em que uma nova linha termina cada linha para iniciar a próxima linha e cada coluna é separada por uma vírgula dentro da linha.
CSV é um formato comum para intercâmbio de dados, pois é compacto, simples e geral. Muitos serviços online permitem que seus usuários exportem dados tabulares do site para um arquivo CSV. Os arquivos CSV serão abertos no Excel e quase todos os bancos de dados possuem uma ferramenta para permitir a importação de arquivos CSV.
Neste tutorial, você aprenderá:
- O que é um arquivo CSV?
- Arquivo de amostra CSV
- Módulo CSV Python
- Funções do módulo CSV
- Como ler um arquivo CSV em Python
- Como ler um arquivo CSV em um dicionário em Python
- Como escrever um arquivo CSV em Python
- Ler arquivo CSV usando Pandas
- Gravar arquivo CSV usando Pandas
Arquivo de amostra CSV
Os dados na forma de tabelas também são chamados de CSV (valores separados por vírgula) – literalmente “valores separados por vírgula”. Este é um formato de texto destinado à apresentação de dados tabulares. Cada linha do arquivo é uma linha da tabela. Os valores das colunas individuais são separados por um símbolo separador – uma vírgula (,), um ponto e vírgula (;) ou outro símbolo. CSV pode ser facilmente lido e processado pelo Python.
Considere a seguinte tabela
Dados da tabela
Linguagem de programação | Projetado por | Apareceu | Extensão |
---|---|---|---|
Python | Guido van Rossum | 1991 | .py |
Java | James Gosling | 1995 | .java |
C++ | Bjarne Stroustrup | 1983 | .cpp |
Você pode representar esta tabela em csv como abaixo.
Dados CSV
Linguagem de programação, Desenhado por, Apareceu, Extensão
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp
Como você pode ver, cada linha é uma nova linha e cada coluna é separada por uma vírgula. Este é um exemplo de como um arquivo CSV se parece.
Baixar dados CSV
Módulo CSV Python
Python fornece um módulo CSV para lidar com arquivos CSV. Para ler/gravar dados, você precisa percorrer as linhas do CSV. Você precisa usar o método split para obter dados de colunas especificadas.
Funções do módulo CSV
Na documentação do módulo CSV você pode encontrar as seguintes funções:
- csv.field_size_limit – retorna o tamanho máximo do campo
- csv.get_dialect – obtém o dialeto que está associado ao nome
- csv.list_dialects – mostra todos os dialetos registrados
- csv.reader – lê dados de um arquivo csv
- csv.register_dialect – associar dialeto ao nome
- csv.writer – grava dados em um arquivo csv
- csv.unregister_dialect – exclua o dialeto associado ao nome do registro de dialeto
- csv.QUOTE_ALL – Cite tudo, independentemente do tipo.
- csv.QUOTE_MINIMAL – Campos de cotação com caracteres especiais
- csv.QUOTE_NONNUMERIC – Cite todos os campos que não são valores numéricos
- csv.QUOTE_NONE – Não cite nada na saída
Neste tutorial, vamos nos concentrar apenas nas funções de leitor e gravador que permitem editar, modificar e manipular os dados em um arquivo CSV.
Como ler um arquivo CSV em Python
Abaixo estão as etapas para ler o arquivo CSV em Python.
Etapa 1) Para ler dados de arquivos CSV, você deve usar a função leitor para gerar um objeto leitor.
A função de leitura é desenvolvida para pegar cada linha do arquivo e fazer uma lista de todas as colunas. Em seguida, você deve escolher a coluna para a qual deseja os dados da variável.
Parece muito mais complexo do que é. Vamos dar uma olhada neste código Python para ler o arquivo CSV e descobriremos que trabalhar com o arquivo csv não é tão difícil.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
Etapa 2) Ao executar o programa acima, a saída será:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Como ler um arquivo CSV em um dicionário em Python
Você também pode usar o DictReader para ler arquivos CSV. Os resultados são interpretados como um dicionário onde a linha do cabeçalho é a chave e as outras linhas são os valores.
Considere o seguinte código
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
O resultado deste código é:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')]) OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')]) OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
E essa maneira de ler dados do arquivo CSV é muito mais fácil do que o método anterior. No entanto, essa não é a melhor maneira de ler dados.
Como escrever um arquivo CSV em Python
Aqui está como escrever um arquivo CSV em Python:
Quando você tem um conjunto de dados que gostaria de armazenar em um arquivo CSV, você deve usar a função writer(). Para iterar os dados nas linhas (linhas), você deve usar a função writerow().
Considere o exemplo a seguir. Gravamos os dados em um arquivo “writeData.csv” onde o delimitador é um apóstrofo.
#import necessary modules import csv with open('X:\writeData.csv', mode='w') as file: writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) #way to write to csv file writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension']) writer.writerow(['Python', 'Guido van Rossum', '1991', '.py']) writer.writerow(['Java', 'James Gosling', '1995', '.java']) writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
O resultado no arquivo csv é:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Ler arquivo CSV usando Pandas
Pandas é uma biblioteca de código aberto que permite importar CSV em Python e realizar manipulação de dados. Pandas fornecem uma maneira fácil de criar, manipular e excluir os dados.
Você deve instalar a biblioteca pandas com o comando
pip install pandas
. No Windows, você executará este comando no Prompt de Comando enquanto estiver no Linux no Terminal. Ler o CSV em um DataFrame do pandas é muito rápido e fácil:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
Resultado do exemplo lido do CSV Pandas:
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
Biblioteca muito útil. Em apenas três linhas de código você obtém o mesmo resultado anterior. Os pandas sabem que a primeira linha do CSV continha nomes de colunas e os usará automaticamente.
Gravar arquivo CSV usando Pandas
Gravar em arquivo CSV com Pandas é tão fácil quanto ler. Aqui você pode convencer nele. Primeiro, você deve criar o DataFrame com base na seguinte gravação do Python no código CSV.
from pandas import DataFrame C = {'Programming language': ['Python','Java', 'C++'], 'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'], 'Appeared': ['1991', '1995', '1985'], 'Extension': ['.py', '.java', '.cpp'], } df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension']) export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored print (df)
Aqui está a saída
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
E o arquivo CSV é criado no local especificado.
Conclusão
Então, agora você sabe como usar o método 'csv' e também ler e gravar dados no formato CSV. Os arquivos CSV são amplamente usados em aplicativos de software porque são fáceis de ler e gerenciar, e seu tamanho pequeno os torna relativamente rápidos para processamento e transmissão.
O módulo csv fornece várias funções e classes que permitem ler e escrever facilmente. Você pode dar uma olhada na documentação oficial do Python e encontrar algumas dicas e módulos mais interessantes. CSV é a melhor maneira de salvar, visualizar e enviar dados. Na verdade, não é tão difícil aprender como parece no começo. Mas com um pouco de prática, você vai dominá-lo.
Pandas é uma ótima alternativa para ler arquivos CSV.
Além disso, existem outras maneiras de analisar arquivos de texto com bibliotecas como ANTLR, PLY e PlyPlus. Todos eles podem lidar com análise pesada e, se a manipulação simples de String não funcionar, existem expressões regulares que você pode usar.
python
- Palavras-chave e identificadores do Python
- Declaração Python, Recuo e Comentários
- Variáveis, constantes e literais do Python
- Conversão de tipo Python e conversão de tipo
- Entrada, Saída e Importação do Python
- Variáveis globais, locais e não locais do Python
- E/S de arquivo Python
- Gerenciamento de diretórios e arquivos Python
- Erros do Python e exceções incorporadas
- Como obter data e hora atuais em Python?