Ficheiros csv

O código seguinte lê um ficheiro CSV e imprime cada campo numa linha

#!/usr/bin/python
import re

with open("b.csv") as f:
        linhas = f.readlines()

regex = re.compile(r"^\xef\xbb\xbf")
linhas = list(map(lambda x: regex.sub("", x).rstrip(), linhas))

for lin in linhas:
        campos = lin.split('","')
        campos[0] = campos[0][1:]
        tam = len(campos)
        tam2 = len(campos[tam-1])
        campos[tam-1] = campos[tam-1][:tam2-1]
        for i in campos:
                print i

Tal como no artigo anterior, remove o BOM do início das linhas. Usualmente, o BOM está só na primeira linha, mas no caso de se concatenarem ficheiros, pode aparecer em várias linhas do ficheiro. Remove também o \r\n do fim de cada linha do ficheiro.

Depois, parte cada linha pelo separador de campos “,”. Por fim, remove as aspas do início do primeiro campo e do fim do último campo.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *