【问题标题】:Insert blank rows every fifth row in csv file python在csv文件python中每第五行插入空白行
【发布时间】:2016-06-26 22:27:02
【问题描述】:

正如我的标题所说,我想在我的 csv 文件中每隔五行插入一个空白行。问题是我的代码在每一行插入 5 个空白行。其他解决方案,如 stackoverflow 上的 this 并不能解决我的问题。

What i want:
1 text on row
2 text on row
3 text on row
4 text on row
5 blank

What i get:
1 


 text on row
2


 text on row
etc.

我的代码如下所示:

with open("new.csv", 'r') as infile:
   readie=csv.reader(infile, delimiter=',')
   with open("output.csv", 'wt') as output:
       outwriter=csv.writer(output, delimiter=',')
       sum = 0
       i = 0
       for row in readie:
            sum == row
            if sum % 5 == 0:
                row_plus = (row, '\n')
                outwriter.writerow(row_plus)

【问题讨论】:

  • sum += i 的意义何在? i 根本没有变化。
  • sum == row 也很奇怪。
  • 糟糕,忘记了 sum += 的旧代码。
  • sum == row 的要点是由于某种原因我无法对 row 变量执行取模操作。
  • 您不应该使用sum 作为变量名。 sum 是 python 的内置函数。另外,a == b 用于检查a 是否等于b,而不是将a 分配给b

标签: python csv


【解决方案1】:

你可以试试这样的:

with open("new.csv", 'r') as infile:
    readie=csv.reader(infile, delimiter=',')
    with open("output.csv", 'wt') as output:
        outwriter=csv.writer(output, delimiter=',')
        i = 0
        for row in readie:
             outwriter.writerow(row)
             i += 1
             if i % 5 == 0:
                 # write the empty row
                 outwriter.writerow([])

【讨论】: