我有一个很大的 csv 文件,其中有些行是完全空白的。如何使用 Python 从 csv 中删除所有空白行?
在你提出所有建议之后,这就是我到目前为止所拥有的
import csv
# open input csv for reading
inputCSV = open(r'C:\input.csv', 'rb')
# create output csv for writing
outputCSV = open(r'C:\OUTPUT.csv', 'wb')
# prepare output csv for appending
appendCSV = open(r'C:\OUTPUT.csv', 'ab')
# create reader object
cr = csv.reader(inputCSV, dialect = 'excel')
# create writer object
cw = csv.writer(outputCSV, dialect = 'excel')
# create writer object for append
ca = csv.writer(appendCSV, dialect = 'excel')
# add pre-defined fields
cw.writerow(['FIELD1_','FIELD2_','FIELD3_','FIELD4_'])
# delete existing field names in input CSV
# ???????????????????????????
# loop through input csv, check for blanks, and write all changes to append csv
for row in cr:
if row or any(row) or any(field.strip() for field in row):
ca.writerow(row)
# close files
inputCSV.close()
outputCSV.close()
appendCSV.close()
这样可以吗,还是有更好的方法来做到这一点?
原文由 debugged 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
csv
模块:如果您还需要删除所有字段都为空的行,请将
if row:
行更改为:如果您还想将仅包含空格的字段视为空字段,您可以将其替换为:
请注意,在 Python 2.x 及更早版本中,
csv
模块需要二进制文件,因此您需要使用 e'b'
标志打开文件。在 3.x 中,这样做会导致错误。