terça-feira, 29 de maio de 2007

CSV Sniffer

O módulo csv do python pode lidar não apenas com arquivos separados por vírgula, mas com arquivos separados por qualquer delimitador, como tabulações, por exemplo.

Para especificarmos o 'dialeto' do CSV, especificamos uma classe que herda de csv.Dialect. Um exemplo:


class dialeto(csv.Dialect):
delimiter = ';'
skipinitialspace = True
quotechar = '"'
doublequote = True
lineterminator = "\n"
quoting = csv.QUOTE_ALL
reader = csv.reader(open("tab_municipios.csv", "rb"),dialeto)


Mas podemos deixar isso um pouco mais fácil: usar o sniffer do módulo csv pra detectar o dialeto! Exemplo:



dialeto=csv.Sniffer().sniff(open('tab_municipios.csv', 'r').read())
reader = csv.reader(open("tab_municipios.csv", "rb"),dialeto)


Dica retirada e adaptada de redmountainsw.com
blog comments powered by Disqus