解析CSV并使用多个值分隔字段

时间:2012-03-26 13:01:45

标签: python csv

CSV包含正在解析的字段,该字段可能包含也可能不包含字段中具有以逗号分隔的值的条目。

import csv

def import_text(filename, separator):
    for line in csv.reader(open(filename), delimiter=separator,
                           skipinitialspace=True):
        if line[19]:
           for elt in line[19].split(','):
               yield elt


for data in import_text('filename.csv', ','):
    print (data)

使用上面的脚本,CSV中的第20列将打印以下内容:

a
b, c, d
e, f

我会喜欢b,c,d; e,f在各自的行上打印如下:

a
b
c
d
e
f

2 个答案:

答案 0 :(得分:1)

分别拆分列和产量字段:

import csv

def import_text(filename, separator):
  for line in csv.reader(open(filename), delimiter=separator, skipinitialspace=True):
    if line[19]:
      for elt in line[19].split(separator):
        yield elt.strip()

for data in import_text('filename.csv', ','):
  print (data)

答案 1 :(得分:1)

import csv

def import_text(filename, separator):
    for line in csv.reader(open(filename), delimiter=separator, skipinitialspace=True):
        if len(line) > 19:
            for elt in line[19].split(separator):
                yield elt

for data in import_text('filename.csv', ','):
    print (data)