我正在寻找一种在循环外使用计数器的方法。如在此示例中,想法是从列表中打印行数,忽略空行。到目前为止,我认为我正在以错误的方式使用计数器,因为它还没有计算空行。
import csv
with open('data.csv', 'rb') as f:
reader2 = csv.reader(f)
reader2.next()
linecount = len(zip(*reader2)[0])
f.seek(0)
reader = csv.reader(f)
reader.next()
counter = []
print(linecount)
print(type(str(counter)))
for row in reader:
if not row[0]: #avoid empty lines
counter += 1
continue
print row
print (int(linecount)-len(counter))
答案 0 :(得分:2)
如果您只想计算行数,为什么还要烦扰CSV?您所需要的只是:
with open('/tmp/uni.py','r') as f:
empty = 0
nonempty = 1
for line in f:
if line.strip():
nonempty +=1
else :
empty +=1
print empty, nonempty
这可以在更少的代码行中完成,但为了清楚起见,我这样做了。