如果单元格包含特定字符串值,则将行写入CSV文件

时间:2017-07-21 12:56:24

标签: python

我想从CSV文件中选择行,如果它在第5列的单元格中包含特定字符串,则将这些行写入另一个CSV文件。下面给出了一个数据样本:

A few rows from the sample data

我想在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。现在如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

抛出此错误的唯一方法是,如果有一行只有4列。检查数据并找到它,和/或使用try语句:

try:
    if Keyword in row[4]:
        writer.writerow(row)
except:
    continue

如果您缺少其他列中的数据,则可能需要添加某种占位符值。