Python:使用多个拆分分隔符拆分文件

don*_*lmg 2 python csv

我有多个CSV文件,我需要在循环中解析以收集信息.问题是虽然它们是相同的格式,但有些由'\ t'分隔,其他由','分隔.在此之后,我想删除字符串周围的双引号.

python可以通过多个可能的分隔符进行拆分吗?

在那一刻,我可以使用以下方法将线分割为:

f = open(filename, "r")
fields = f.readlines()
for fs in fields:
    sf = fs.split('\t')
    tf = [fi.strip ('"') for fi in sf]
Run Code Online (Sandbox Code Playgroud)

int*_*jay 14

像这样拆分文件不是一个好主意:如果其中一个字段中有逗号,它将失败.例如(对于制表符分隔的文件):该行将"field1"\t"Hello, world"\t"field3"分为4个字段而不是3个字段.

相反,您应该使用该csv模块.它包含有用的Sniffer类,可以检测文件中使用的分隔符.csv模块也会删除双引号.

import csv

csvfile = open("example.csv")
dialect = csv.Sniffer().sniff(csvfile.read(1024))
csvfile.seek(0)
reader = csv.reader(csvfile, dialect)

for line in reader:
    #process line
Run Code Online (Sandbox Code Playgroud)