python - 类型错误 : '_csv.reader' object has no attribute '__getitem__' ?

标签 python csv

到目前为止,这是我的代码:

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

这是我的 new_file.txt:

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

当我运行它时出现以下错误:

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__'

我该如何解决?

谢谢。

最佳答案

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

为此,您必须将整个可迭代对象“吞噬”到一个列表中:

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

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

reader = csv.reader(open('new_file.txt','r'),delimiter=' ')
row1 = next(reader)
row2 = next(reader)
row3 = next(reader)

关于python - 类型错误 : '_csv.reader' object has no attribute '__getitem__' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19090589/

相关文章:

python - 如何使用python杀死资源消耗不变的Windows进程?

python - django 模块是全局的 - ImportError : No module named django. core.management?

excel - CSV 文件/Excel 中的日期/时间格式

javascript - 从 csv 数据创建折线图

php - PHP 脚本中的错误报告

python - 基于Python中的公共(public)列合并两个文本文件

csv - 带有自定义 sObject 的 Test.loadData 引发异常

Python 2.4.3 : ConfigParser. NoSectionError:无节: 'formatters'

python - 运行 celery worker 和 celery 节拍作为线程

python - 用零填充列表中的数组