O que é um arquivo CSV?
Um arquivo CSV é um tipo de arquivo de texto simples que usa uma estrutura específica para organizar dados tabulares. 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 do CSV serão abertos no Excel, e quase todos os bancos de dados possuem uma ferramenta que permite a importação do arquivo CSV. O formato padrão é definido por dados de linhas e colunas. Além disso, cada linha é encerrada por uma nova linha para iniciar a próxima linha. Também dentro da linha, cada coluna é separada por uma vírgula.
Neste tutorial, você aprenderá:
- O que é um arquivo CSV?
- Arquivo de amostra CSV.
- Módulo Python CSV
- Funções do Módulo CSV
- Lendo arquivos CSV
- Leitura como um dicionário
- Gravando em arquivos CSV
- Lendo arquivos CSV com Pandas
- Gravando em arquivos CSV com 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 de colunas individuais são separados por um símbolo separador - uma vírgula (,), um ponto e vírgula (;) ou outro símbolo. O CSV pode ser facilmente lido e processado pelo Python.
Considere o seguinte Tabe
Tabela de dados
Linguagem de programação | Projetado por | Apareceu | Extensão |
Pitão | Guido van Rossum | 1991 | .py |
Java | James Gosling | 1995 | .Java |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
Você pode representar esta tabela em csv conforme abaixo.
Dados CSV
Linguagem de programação, desenvolvida por, exibida, 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 da aparência de um arquivo CSV.
Baixar dados CSV
Módulo Python CSV
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 de divisão 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 - dialeto associado ao nome
- csv.writer - grava dados em um arquivo csv
- csv.unregister_dialect - exclui 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 números de valor
- 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
Para ler dados de arquivos CSV, você deve usar a função de leitor para gerar um objeto de leitor.
A função de leitor é 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 variáveis.
Parece muito mais complicado do que é. Vamos dar uma olhada neste exemplo e descobriremos que trabalhar com o arquivo csv não é tão difícil.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
Ao executar o programa acima, o resultado 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 CSV como um dicionário
Você também pode usar o DictReader para ler arquivos CSV. Os resultados são interpretados como um dicionário em que a linha do cabeçalho é a chave e as outras linhas são os valores.
Considere o seguinte código
#import necessary modulesimport csvreader = 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 esta maneira de ler os 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
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 seguinte exemplo. Gravamos os dados em um arquivo "writeData.csv" onde o delimitador é um apóstrofo.
#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.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, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
Lendo arquivos CSV com Pandas
Pandas é uma biblioteca de código aberto que permite realizar manipulação de dados em Python. O Pandas oferece 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 modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Resultado:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Biblioteca muito útil. Em apenas três linhas de código você obteve o mesmo resultado anterior. O Pandas sabe que a primeira linha do CSV contém nomes de colunas e os usará automaticamente.
Gravando em arquivos CSV com Pandas
Escrever em arquivo CSV com o Pandas é tão fácil quanto ler. Aqui você pode convencer nisso. Primeiro você deve criar DataFrame com base no código a seguir.
from pandas import DataFrameC = {'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 storedprint (df)
Aqui está o resultado
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 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 a você ler e escrever facilmente. Você pode consultar a documentação oficial do Python e encontrar mais algumas dicas e módulos interessantes. CSV é a melhor maneira de salvar, visualizar e enviar dados. Na verdade, não é tão difícil de aprender como parece no início. Mas com um pouco de prática, você o dominará.
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álises pesadas e, se a manipulação simples de String não funcionar, existem expressões regulares que você pode usar.