我想从CSV文件中选择行,如果它在第5列的单元格中包含特定字符串,则将这些行写入另一个CSV文件。下面给出了一个数据样本:
我想在E列中写下包含字符串'Authentication status for'的所有行,并将其写入另一个文件。这是我的代码,但它似乎不起作用:
RawFile = "input.csv"
CleanedFile = "output.csv"
Keyword = 'Authentication status for'
with open(RawFile) as infile, open(CleanedFile, 'w') as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
for row in reader:
if Keyword in row[4]:
writer.writerow(row)
这会不断引发错误list index out of range
。现在如何解决这个问题?
答案 0 :(得分:1)
抛出此错误的唯一方法是,如果有一行只有4列。检查数据并找到它,和/或使用try语句:
try:
if Keyword in row[4]:
writer.writerow(row)
except:
continue
如果您缺少其他列中的数据,则可能需要添加某种占位符值。