我想阅读2种不同类型的CSV文件:
','
作为分隔符';'
作为分隔符我试着通过这样做来检查我正在使用哪个分隔符:
dialect = csv.Sniffer().sniff(csvfile, [',', ';'])
data = csv.reader(csvfile, dialect)
然后我得到了TypeError : expected string or buffer
。
如果我这样做,它可以工作,但我不知道何时使用什么分隔符。
data = csv.reader(csvfile, delimiter = ",")
data = csv.reader(csvfile, delimiter = ";")
是的,有人能帮帮我吗?
答案 0 :(得分:16)
Sniffer需要sample string,而不是文件。你需要做的就是:
dialect = csv.Sniffer().sniff(csvfile.readline(), [',',';'])
csvfile.seek(0)
data = csv.reader(csvfile, dialect)
搜索很重要,因为您使用readline命令在文件中移动当前位置,并且需要重置回文件的开头。否则你会丢失数据。