我创建了一个程序,从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})
答案 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]
(在我的示例中)显示空白结果,因此删除额外的行是更好的解决方案。