如何在Python中附加列表索引

如何在Python中附加列表索引,python,csv,indexing,append,row,Python,Csv,Indexing,Append,Row,请帮忙,我找不到 为什么我可以追加行,但不能追加行[2]?它崩溃了。我正在使用Python 3.4.3 import csv with open("file.csv", encoding="UTF8") as csvfile: read = csv.reader(csvfile, delimiter=";") original = [] for row in read: original.append(row[2]) csvfile.close(

请帮忙,我找不到

为什么我可以追加
,但不能追加
行[2]
?它崩溃了。我正在使用Python 3.4.3

import csv

with open("file.csv", encoding="UTF8") as csvfile:
    read = csv.reader(csvfile, delimiter=";")

    original = []

    for row in read:
        original.append(row[2])


csvfile.close()
print(original)

谢谢

这看起来是一次令人沮丧的调试体验

一种可能性是,文件中的最后一行只有一项导致问题

快速查看情况的一种方法(取决于文件的长度)可能是逐行打印并查看发生了什么:

for row in read:
    try:
        original.append(row[2])
    except:
        print(row)
如果你用这个运行,你可能会看到在崩溃之前发生了什么


你可能想更详细地描述一下事故是什么。用这样一个模糊的描述来帮助别人是出了名的困难。多做一点努力将有助于人们更有效地帮助您。

我建议您不要尝试在最后打印整个CSV列表,这可能会导致某些IDE锁定很长时间

相反,您可以只打印最后几个条目来证明它有效:

print("Rows read:", len(original)
print(original[-10:])

也许
包含的元素少于三个?凯文可能知道一些事情。如果不看到崩溃中的错误消息,就很难调试崩溃。如何判断它崩溃了?:)坠机后的错误回溯是什么?顺便说一句,只是一个提示。无需显式关闭文件-它将由上下文管理器关闭-删除
csvfile.close()
line.Thank。它会冻结,占用大约60%的CPU。试过你写的东西,问题是打印(原始)部分,附加似乎工作得很好。也许名单太长了?大约1400件。但是如果我只追加一行代码就行了。我调整了代码。它现在应该只在失败时打印。冻结确实表明某个地方有内存泄漏……是的,就是这样。(1408)谢谢你!:-)