我正在编写python代码以使用DictReader从csv文件中读取内容。
with open(parafile, "rb") as paracsv:
#Read in parameter values as a dictionary
paradict = csv.DictReader(paracsv)
if paradict.line_num <= 1:
return None
如果从csv文件读取的行数不超过一行,我希望能够立即返回。
我已经尝试检查line_num,但即使文件中有多行,它也总是返回0。有谁知道检查这个的正确/有效方法是什么?
由于
答案 0 :(得分:1)
如果没有读取行,您不能知道文件中有多少。请注意,csvreader.line_num
attribute反映了到目前为止读取的行数,而不是文件中存在的行数:
从源迭代器读取的行数。这与返回的记录数不同,因为记录可以跨越多行。
只需阅读您的文件;如果文件中只有一行,那么你最终会提前返回 。
如果您没有读取任何行,则只返回None
,您可以使用:
with open(parafile, "rb") as paracsv:
#Read in parameter values as a dictionary
paradict = csv.DictReader(paracsv)
has_rows = False
for line in paradict:
has_rows = True
if not has_rows:
return None
如果文件中第一个标题行之外没有行,则返回 early ,因为for循环会立即终止。