将列添加到CSV文件时追加额外的行

时间:2017-08-15 18:25:49

标签: python python-2.7 csv

我正在阅读CSV文件,删除标题,并附加两列数据。除了在最后添加额外的行之外,一切都很好。例如,如果我有以下输入文件:

headerA | headerB | headerC
   a    |    b    |    c
   d    |    e    |    f

我希望输出文件看起来像:

   a    |    b    |    c    |    g    |    h
   d    |    e    |    f    |    g    |    h

但它的出现就像:

   a    |    b    |    c    |    g    |    h
   d    |    e    |    f    |    g    |    h
   g    |    h

我不能为我的生活弄清楚为什么会这样。如果有人有解决方案,我将不胜感激。这是我的代码:

for fileName in os.listdir(inPath):
    if fileName.endswith('.csv'):
        with open(inPath + fileName, 'rb') as csvin:
            reader = csv.reader(csvin, delimiter=',')
            i = reader.next()
            with open(outPath + 'wrng_' + fileName, 'wb') as csvout:
                writer = csv.writer(csvout, delimiter=',')                         
                for row in reader:
                    j = fileName.split("_")[1].replace(".csv","")
                    row.append(j[2:-7] + '-' + j[4:-5] + '-' + j[:2] + ' ' + j[7:-2] + ':' + j[9:] + ':00')
                    row.append(i[1].split(" ")[2][:-1])
                    writer.writerow(row)

1 个答案:

答案 0 :(得分:0)

(从评论中总结)看起来您遇到的问题可能是由文件末尾的空行引起的。您可以检查for循环中的行是否为空。

for row in reader:
    if row:
    ...