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.
