Categorias
Introdução à Programação para Bioinformática com Perl

CSV com Python

Manipulação de arquivos CSV usando Python

CSV (comma-separated-values ou na tradução “valores separados por vírgulas”) é um formato de arquivos bastante usado para armazenamento de dados (em geral, tabelas). Nesse formato, linhas de uma tabela são armazenados em cada linha do arquivo .csv e cada colunas são separadas por vírgulas (ou outro caractere separador como por exemplo ponto e vírgula ; ou tabulações \t).

Caso o item armazenado possua o mesmo caractere utilizado como separador, é utilizado aspas para delimitar a célula. Por exemplo:

id, nome, mensagem
1, Diego, Olá pessoas
2, José, Biscoito recheado é bom
3, Maria, "A vingança nunca é pela, mata alma e envenena"

Neste exemplo, a última célula possuía uma vírgula (o que poderia indicar que a linha possuía quatro colunas, quando na verdade eram três). Nesse caso, aspas foram utilizadas para indicar que todo o conteúdo entre aspas se trata de uma única célula.

Observe ainda que o uso de cabeçalhos é opcional.

Manipulando arquivos CSV com Python

Python fornece a biblioteca csv para manipulação de arquivos nesse formato.

import csv

Lendo arquivos CSV

Para ler um arquivo CSV, é importante se atentar a três passos:

  1. Abrir o arquivo
    • não se esqueça de indicar a codificação usada (encoding=’utf-8′)
  2. Ler a tabela
    • use a função csv.reader( )
  3. Navegue pelas linhas usando um laço de repetição
    • não precisa usar split, basta indicar a posição da célula

Veja um exemplo prático:

Vamos ler o seguinte arquivo (amostra do arquivo 0_dados_history.csv):

191149,Diego C B Mariano,97598,SIMBA: a web tool for managing bacterial genome assembly generated by Ion PGM sequencing technology,bmc,2016,5,1
94275,Raquel C de Melo-Minardi,98025,Vermont: a multi-perspective visual interactive platform for mutational analysis,bmc,2017,93,7

Script Python:

import csv

# 1. abrir o arquivo
with open('0_dados_history.csv', encoding='utf-8') as arquivo_referencia:

  # 2. ler a tabela
  tabela = csv.reader(arquivo_referencia, delimiter=',')

  # 3. navegar pela tabela
  for l in tabela:
    id_autor = l[0]
    nome = l[1]

    print(id_autor, nome) # 191149, Diego C B Mariano

Gravando arquivos CSV

Para gravar um arquivo CSV, deve-se:

  1. Criar o arquivo final
    • use open
  2. Criar o objeto de gravação
    • use a função csv.writer(nome-do-arquivo-criado)
  3. Indicar as linhas que serão gravadas
    • use w.writerow([array])

Veja o exemplo a seguir:

import csv

# 1. cria o arquivo
f = open('numero_dobro_triplo.csv', 'w', newline='', encoding='utf-8')

# 2. cria o objeto de gravação
w = csv.writer(f)

# 3. grava as linhas
for i in range(5):
  w.writerow([i, i*2, i*3])

# Recomendado: feche o arquivo
w.close() 

Por Diego Mariano

Doutor em Bioinformática pela Universidade Federal de Minas Gerais com atuação na área de ciência de dados e aprendizado de máquina aplicados ao aperfeiçoamento de enzimas usadas na produção de biocombustíveis. Mestre em Bioinformática, também pela UFMG, atuando na área de desenvolvimento de sistemas Web para montagem de genomas. Atualmente realiza estágio pós-doutoral no Departamento de Ciência da Computação da UFMG com foco em desenvolvimento de sistemas Web para Bioinformática, análise exploratória e visualização de dados. Tem conhecimentos nas linguagens: PHP, JavaScript, Python, R, Perl, HTML, CSS e SQL.