'IndexError:列表索引超出范围' - 阅读&从同一个csv文件写

时间:2016-04-16 19:38:01

标签: python csv tkinter

我创建了一个程序,从csv文件中读取数据并在列表框中显示数据,但程序也写入到csv文件。最初我有单独的文件用于读取和写入数据,但现在我想使用相同的文件,但它会抛出'IndexError:list index out of range'。当使用两个csv文件时程序完美运行时,我不确定为什么会这样做。

例如我打开,阅读并显示结果:

with open('QWERTY.csv', 'rt')as f:
    reader=csv.reader(f)
    people=[]
    for column in reader:
        people.append(column[0:8])
    namesList = [x[0] for x in people]
    for names in (namesList):
        namebox.insert(END, names)

然后在程序中我写到同一个文件:

with open('QWERTY.csv', 'a') as f:
    fieldnames=['name']
    writer=csv.DictWriter(f,fieldnames=fieldnames)
    writer.writerow({'name':i_name})

1 个答案:

答案 0 :(得分:0)

对于将来遇到同样问题的人,解决方法是删除额外的行。

writer=csv.DictWriter(f,fieldnames=fieldnames, lineterminator='\n')

虽然可以通过更改

来读取额外的行间距

这:

namesList = [x[0] for x in people]

对此:

namesList = [x[0:1] for x in people]

(在我的示例中)显示空白结果,因此删除额外的行是更好的解决方案。