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.