这里发生了一件奇怪的事情,我正在尝试在现有的csv文件中添加两行,所以我打开它(edit1.csv),再将它写入一个新文件(edit2) line(在第一个空格中写入数字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
奇怪的是,如果我打开新文件并在我手动添加的两个之后删除所有空行,则代码运行正常。
对不起,如果我的代码有点乱,我还是新手:)
感谢。
答案 0 :(得分:0)
唯一错误的部分是直接访问row[1]
。
如果row只有1行,那么当你试图到达第二行时它会引发异常。
只需像这样修改代码:
for row in readCSV:
if len(row) < 2: # row[1] not exists
sec_col.append(row)