8

Here is my code so far:

import csv
reader = csv.reader(open('new_file.txt','r'),delimiter=' ')
row1 = reader[0]
row2 = reader[1]
row3 = reader[2]

Here is my new_file.txt:

this is row one
this is row two
this is row three

When I run It i have the following error:

Traceback (most recent call last):
  File "/home/me/Documents/folder/file.py", line 211, in <module>
    row1 = reader[0]
TypeError: '_csv.reader' object has no attribute '__getitem__'

How can I fix that?

Thanks.

4

2 回答 2

18

csv.reader()对象不是序列。您不能按索引访问行。

为此,您必须将整个迭代“啜”到一个列表中:

rows = list(reader)
row1 = rows[0]
row2 = rows[1]
row3 = rows[2]

这通常不是一个好主意。next()您可以使用以下函数从迭代器中请求下一个值:

reader = csv.reader(open('new_file.txt','r'),delimiter=' ')
row1 = next(reader)
row2 = next(reader)
row3 = next(reader)
于 2013-09-30T09:22:15.200 回答
2

您可以循环reader然后访问row元素:

import csv
reader = csv.reader(open('new_file.txt','r'),delimiter=' ')
for row in reader:
    row1 = row[0]
    row2 = row[1]
    row3 = row[3]
于 2015-05-12T05:44:11.830 回答