分隔符问题

时间:2011-12-10 05:58:42

标签: python

我想用'。'作为分隔符,但我得到一个“IndexError:列表索引超出范围”错误与下面的代码。如果我删除分隔符部分,代码按我希望的方式工作。知道为什么这个吗?非常感谢提前。

import csv

mags = csv.reader(open("mags.csv","rU"), delimiter='.')

for row in mags:

     print [item.lower() for item in [row[index] for index in (1, 0)]]

1 个答案:

答案 0 :(得分:2)

也许有一行缺少.分隔符。

要查看 csv.reader 正在执行的操作,请在其他print-statement之前添加print repr(row)。这可能会显示一条被解析为零或一个字段的行。

如果数据实际上每行都有一个.分隔符,那么您的代码可以正常工作:

>>> txt = '''\
tom.smith
ben.cohen
scott.friedman
michael.jones
'''.splitlines()
>>> import csv
>>> for row in csv.reader(txt, delimiter='.'):
        print [item.lower() for item in [row[index] for index in (1, 0)]]

['smith', 'tom']
['cohen', 'ben']
['friedman', 'scott']
['jones', 'michael']

可能是您的输入数据有分隔符的逗号,并且您希望输出使用不同的分隔符。方法如下:

>>> txt = '''\
tom,smith
ben,cohen
scott,friedman
michael,jones
'''.splitlines()
>>> for row in csv.reader(txt):
        print '.'.join([item.lower() for item in [row[index] for index in (1, 0)]])

smith.tom
cohen.ben
friedman.scott
jones.michael