Python CSV删除空行

时间:2015-08-22 21:59:09

标签: python csv python-3.x

我很难尝试使用python 3.4.3从csv文件中删除空(空白)行。每次运行脚本时,输出都与原始输出保持一致。

  import csv
  ...


 with open('demo004.csv') as input, open('demo005.csv', 'w') as output:
      writer = csv.writer(output)
      for row in csv.reader(input):
          if any(field.strip() for field in row):
             writer.writerow(row)
      input.close()
      output.close()

我的CSV文件格式为。

AA,AB,AC

BA,BB,BC

CA,CB,CB

我想获得

AA,AB,AC
BA,BB,BC
CA,CB,CB

2 个答案:

答案 0 :(得分:4)

当您尝试打开要写入的文件时,请使用其他参数打开它,换行符''

import csv
  ...


 with open('demo004.csv') as input, open('demo005.csv', 'w', newline='') as output:
     writer = csv.writer(output)
     for row in csv.reader(input):
         if any(field.strip() for field in row):
             writer.writerow(row)

答案 1 :(得分:1)

如果您只想删除空白行(即空白行或可能只包含空格),那么您不必担心其他行是CSV。这意味着您可以这样做:

with open('demo004.csv') as input, open('demo005.csv', 'w') as output:
    non_blank = (line for line in input if line.strip())
    output.writelines(non_blank)