Pitão

Como lidar com arquivos CSV em Python

Como lidar com arquivos CSV em Python
Este artigo irá cobrir um tutorial sobre como lidar com arquivos “csv” usando Python. O termo “csv” significa “valores separados por vírgula”, em que cada linha ou linha contém valores baseados em texto delimitados por vírgulas. Em alguns casos, “ponto e vírgula” também é usado em vez de “vírgula” para separar valores. No entanto, isso não faz muita diferença para as regras de formato de arquivo e a lógica para lidar com os dois tipos de separadores permanece a mesma.

O formato de arquivo CSV é mais comumente usado para manter bancos de dados e planilhas. A primeira linha em um arquivo CSV é mais comumente usada para definir campos de coluna, enquanto quaisquer outras linhas restantes são consideradas linhas. Esta estrutura permite que os usuários apresentem dados tabulares usando arquivos CSV. Os arquivos CSV podem ser editados em qualquer editor de texto. No entanto, aplicativos como o LibreOffice Calc fornecem ferramentas avançadas de edição, classificação e funções de filtro.

Lendo dados de arquivos CSV usando Python

O módulo CSV em Python permite que você leia, escreva e manipule quaisquer dados armazenados em arquivos CSV. Para ler um arquivo CSV, você precisará usar o método “leitor” do módulo “csv” do Python que está incluído na biblioteca padrão do Python.

Considere que você tem um arquivo CSV contendo os seguintes dados:

Manga, Banana, Maçã, Laranja
50,70,30,90

A primeira linha do arquivo define cada categoria de coluna, nome das frutas neste caso. A segunda linha armazena valores em cada coluna (estoque em mãos). Todos esses valores são delimitados por uma vírgula. Se você abrisse este arquivo em um aplicativo de planilha como o LibreOffice Calc, teria a seguinte aparência:

Agora, para ler os valores de “frutas.arquivo csv ”usando o módulo“ csv ”do Python, você precisará usar o método“ leitor ”no seguinte formato:

importar csv
com aberto ("frutas.csv ") como arquivo:
data_reader = csv.leitor (arquivo)
para linha em data_reader:
imprimir (linha)

A primeira linha no exemplo acima importa o módulo “csv”. Em seguida, a declaração “with open” é usada para abrir com segurança um arquivo armazenado em seu disco rígido (“frutas.csv ”neste caso). Um novo objeto “data_reader” é criado chamando o método “reader” do módulo “csv”. Este método “leitor” leva um nome de arquivo como um argumento obrigatório, então a referência a “frutas.csv ”é passado para ele. Em seguida, uma instrução de loop “for” é executada para imprimir cada linha de “frutas.arquivo csv ”. Depois de executar o exemplo de código mencionado acima, você deve obter a seguinte saída:

['50', '70', '30', '90']

Se você quiser atribuir números de linha à saída, pode usar a função "enumerar", que atribui um número a cada item em um iterável (começando em 0, a menos que seja alterado).

importar csv
com aberto ("frutas.csv ") como arquivo:
data_reader = csv.leitor (arquivo)
para índice, linha em enumerar (data_reader):
imprimir (índice, linha)

A variável “índice” mantém a contagem de cada elemento. Depois de executar o exemplo de código mencionado acima, você deve obter a seguinte saída:

0 ['Manga', 'Banana', 'Maçã', 'Laranja']
1 ['50', '70', '30', '90']

Como a primeira linha em um arquivo “csv” geralmente contém cabeçalhos de coluna, você pode usar a função “enumerar” para extrair esses cabeçalhos:

importar csv
com aberto ("frutas.csv ") como arquivo:
data_reader = csv.leitor (arquivo)
para índice, linha em enumerar (data_reader):
se índice == 0:
títulos = linha
imprimir (cabeçalhos)

O bloco “if” na instrução acima verifica se o índice é igual a zero (primeira linha em “frutas.arquivo csv ”). Se sim, então o valor da variável “linha” é atribuído a uma nova variável “títulos”. Depois de executar o exemplo de código acima, você deve obter a seguinte saída:

['Manga', 'Banana', 'Maçã', 'Laranja']

Observe que você pode usar seu próprio delimitador ao chamar “csv.leitor ”usando um argumento“ delimitador ”opcional no seguinte formato:

importar csv
com aberto ("frutas.csv ") como arquivo:
data_reader = csv.leitor (arquivo, delimitador = ";")
para linha em data_reader:
imprimir (linha)

Já que em um arquivo csv, cada coluna está associada a valores em uma linha, você pode querer criar um objeto de "dicionário" Python ao ler dados de um arquivo "csv". Para fazer isso, você precisa usar o método “DictReader”, conforme mostrado no código abaixo:

importar csv
com aberto ("frutas.csv ") como arquivo:
data_reader = csv.DictReader (arquivo)
para linha em data_reader:
imprimir (linha)

Depois de executar o exemplo de código mencionado acima, você deve obter a seguinte saída:

'Manga': '50', 'Banana': '70', 'Maçã': '30', 'Laranja': '90'

Agora você tem um objeto de dicionário que associa colunas individuais com seus valores correspondentes nas linhas. Isso funciona bem se você tiver apenas uma linha. Vamos supor que as “frutas.O arquivo csv ”agora inclui uma linha adicional que especifica quantos dias levará para o estoque de frutas morrer.

Manga, Banana, Maçã, Laranja
50,70,30,90
3,1,6,4

Quando você tem várias linhas, executar o mesmo exemplo de código acima produzirá uma saída diferente.

'Manga': '50', 'Banana': '70', 'Maçã': '30', 'Laranja': '90'
'Manga': '3', 'Banana': '1', 'Maçã': '6', 'Laranja': '4'

Isso pode não ser ideal, pois você pode desejar mapear todos os valores pertencentes a uma coluna para um par de valores-chave em um dicionário Python. Em vez disso, tente este exemplo de código:

importar csv
com aberto ("frutas.csv ") como arquivo:
data_reader = csv.DictReader (arquivo)
data_dict =
para linha em data_reader:
para chave, valor em linha.Itens():
data_dict.setdefault (chave, [])
data_dict [chave].anexar (valor)
imprimir (data_dict)

Depois de executar o exemplo de código mencionado acima, você deve obter a seguinte saída:

'Manga': ['50', '3'], 'Banana': ['70', '1'], 'Maçã': ['30', '6'], 'Laranja': ['90 ',' 4 ']

Um loop “for” é usado em cada elemento do objeto “DictReader” para fazer um loop sobre pares de valor-chave. Uma nova variável de dicionário Python “data_dict” é definida antes disso. Ele irá armazenar os mapeamentos de dados finais. No segundo bloco de loop “for”, o método “setdefault” do dicionário Python é usado. Este método atribui um valor a uma chave de dicionário. Se o par de valores-chave não existir, um novo é criado a partir dos argumentos especificados. Então, neste caso, uma nova lista vazia será atribuída a uma chave se ela ainda não existir. Por último, "valor" é anexado à sua chave correspondente no objeto "data_dict" final.

Gravando dados em um arquivo CSV

Para gravar dados em um arquivo "csv", você precisará usar o método "escritor" do módulo "csv". O exemplo abaixo irá anexar uma nova linha ao existente “frutas.arquivo csv ”.

importar csv
com aberto ("frutas.csv "," a ") como arquivo:
data_writer = csv.escritor (arquivo)
data_writer.escritorow ([3,1,6,4])

A primeira instrução abre o arquivo no modo “anexar”, denotado pelo argumento “a”. Em seguida, o método "escritor" é chamado e a referência a "frutas.arquivo csv ”é passado para ele como um argumento. O método “writerow” escreve ou adiciona uma nova linha ao arquivo.

Se você deseja converter o dicionário Python em uma estrutura de arquivo “csv” e salvar a saída em um arquivo “csv”, tente este código:

importar csv
com aberto ("frutas.csv "," w ") como arquivo:
cabeçalhos = ["Manga", "Banana", "Maçã", "Laranja"]
data_writer = csv.DictWriter (arquivo, nomes de campos = títulos)
data_writer.writeheader ()
data_writer.writerow ("Mango": 50, "Banana": 70, "Apple": 30, "Orange": 90)
data_writer.writerow ("Mango": 3, "Banana": 1, "Apple": 6, "Orange": 4)

Depois de abrir um vazio “frutas.arquivo csv ”usando uma declaração“ with open ”, uma nova variável“ headings ”é definida que contém cabeçalhos de coluna. Um novo objeto “data_writer” é criado chamando o método “DictWriter” e passando a referência para “frutas.arquivo csv ”e um argumento“ fieldnames ”. Na próxima linha, os cabeçalhos das colunas são gravados no arquivo usando o método “writeheader”. As duas últimas instruções adicionam novas linhas aos títulos correspondentes criados na etapa anterior.

Conclusão

Os arquivos CSV fornecem uma maneira elegante de gravar dados em formato tabular. O módulo "csv" integrado do Python facilita o manuseio de dados disponíveis em arquivos "csv" e a implementação de lógica adicional neles.

Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...
Melhores distros Linux para jogos em 2021
O sistema operacional Linux percorreu um longo caminho desde sua aparência original, simples e baseada em servidor. Este sistema operacional melhorou ...