繁体   English   中英

遍历CSV文件时“列表索引超出范围”

[英]“list index out of range” when iterating through a csv file

这里发生了一件奇怪的事情,我正在尝试向现有的csv文件中添加两行,因此我将其打开(edit1.csv),并使用两行额外的内容将其重写为新文件(edit2)(一在第一个空格上写上数字100,第二行在前三个空格上写上数字9。

ifile  = open('C:\PyProject\edit1.csv', "rb")
reader = csv.reader(ifile)
edited  = open('C:\PyProject\edit2.csv', "wb")
writer = csv.writer(edited, delimiter=',')
for row in reader:
    writer.writerow(row)
writer.writerow([100])
writer.writerow('999')
edited.close()
ifile.close()

到目前为止一切顺利,我得到了一个新文件(edit2.csv),它看起来和我想要的样子完全一样。

问题是当我尝试遍历新文件以查找第二列为空的行(请参见下文)时,出现错误

--

with open('C:\PyProject\edit2.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    sec_col = []
    for row in readCSV:
        blanker = row[1]
        sec_col.append(blanker)
    trial_index = [i for i,x in enumerate(sec_col) if x == '']   

--

  blanker = row[1]
    IndexError: list index out of range

奇怪的是,如果我打开新文件并在手动添加两行后删除所有空白行,则代码可以正常运行。

抱歉,如果我的代码有点混乱,我仍然是新手:)

谢谢。

唯一错误的部分是直接访问row[1]

如果row只有1行,那么当您尝试到达第二行时会引发异常。

只需像这样修改代码:

for row in readCSV:
    if len(row) < 2: # row[1] not exists
        sec_col.append(row)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM