我试图读取一个大型csv文件的一些特定行,我不想将整个文件加载到内存中.特定行的索引在列表中给出L = [2, 5, 15, 98, ...],我的csv文件如下所示:
Col 1, Col 2, Col3
row11, row12, row13
row21, row22, row23
row31, row32, row33
...
Run Code Online (Sandbox Code Playgroud)
with open('~/file.csv') as f:
r = csv.DictReader(f) # I need to read it as a dictionary for my purpose
for i in L:
for row in enumerate(r):
print row[i]
Run Code Online (Sandbox Code Playgroud)
我立即得到以下错误:
IndexError Traceback (most recent call last)
<ipython-input-25-78951a0d4937> in <module>()
6 for i in L:
7 for row in enumerate(r):
----> 8 …Run Code Online (Sandbox Code Playgroud) 我试图读取csv文件的行.我的文件看起来像这样
Col 1, Col 2, Col3
row11, row12, row13
row21, row22, row23
row31, row32, row33
...
Run Code Online (Sandbox Code Playgroud)
我使用以下命令来读取行
with open('~/data.csv') as f:
r = csv.DictReader(f)
for i in range(5):
print(list(r)[i])
Run Code Online (Sandbox Code Playgroud)
输出打印第一行,但之后它立即给出索引错误.
IndexError Traceback (most recent call last)
<ipython-input-15-efcc4f8c760d> in <module>()
2 r = csv.DictReader(f)
3 for i in range(5):
----> 4 print(list(r)[i])
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
我猜我在某个地方犯了一个愚蠢的错误,但无法发现它.关于我做错了什么以及如何解决它的任何想法?
编辑:这是输出print(list(r)):
[{'Col 1': 'row11', ' Col3': ' row13', ' Col 2': ' row12'}, {'Col 1': 'row21', ' Col3': ' …Run Code Online (Sandbox Code Playgroud)