fieldnames = ['first_name', 'last_name', 'address']
with open('names.csv') as csvfile:
reader = csv.DictReader(csvfile, fieldnames=fieldnames)
for row in reader:
print(row['first_name'], "'s number", row['last_name'], "address", row['adres'])
这是我打印CSV文件的代码。如果CSV文件为空,我想打印它是空的。我想如果我能得到文件的行数,我可以检查它是否为空。
答案 0 :(得分:6)
只是做
len(list(reader))
它遍历reader
对象以创建列表,然后计算长度&数字或行是列表长度(标题不包括在内)
请注意,此语句会占用该文件,因此如果您打算解析该文件,请将list(reader)
变量存储在某处。
答案 1 :(得分:5)
使用sum
函数(使用生成器表达式)获取行计数的有效方法:
with open('names.csv') as csvfile:
row_count = sum(1 for row in csvfile)
print(row_count if row_count else 'Empty')
答案 2 :(得分:0)
这个怎么样:
import os
os.stat("names.csv").st_size == 0
如果它为空则返回true,你想要这个吗?
答案 3 :(得分:0)
您还可以在解析文件时枚举条目,如下所示:
fieldnames = ['first_name', 'last_name', 'address']
with open('names.csv') as csvfile:
reader = csv.DictReader(csvfile, fieldnames=fieldnames)
for count, row in enumerate(reader):
print(row['first_name'], "'s number", row['last_name'], "address", row['address'])
if count == 0:
print("empty")