【发布时间】:2015-02-26 17:51:11
【问题描述】:
似乎csv.DictReader 会跳过空行,即使设置了restval。使用以下内容,将跳过输入文件中的空行:
import csv
CSV_FIELDS = ("field1", "field2", "field3")
for row in csv.DictReader(open("f"), fieldnames=CSV_FIELDS, restval=""):
if not row or not row[CSV_FIELDS[0]]:
sys.exit("never reached, why?")
文件f 在哪里:
1,2,3
a,b,c
【问题讨论】:
-
期望的行为是什么?
-
如果您有一个只有 2 个逗号的空行,即
,,,则将打印"never reached, why?"。这就是你想要的吗? -
对于它的价值,这是我所期望的行为,我什至声称这应该是显而易见的:空行不是空记录,它是 absence i> 的记录。
-
@mdurant:当字段少于应有的字段时,缺少的字段为
restval。至少那是我对doc 的解释 -
@KonradRudolph:这可能是您所期望的,但这不是我对文档的解释。在我的场景中,我想知道行何时为空,或者当所有值都丢失时以不同的方式表示。