我在比较CSV文件中的行时偶然发现了这个问题。在
我可以利用csv.reader使用len()可以很好地工作,但是我必须在键上对文件进行排序。在
我有唯一的键,所以我想使用DictReader,但是len()似乎读取dict中的所有值,包括空单元格:
with open (baseline, 'r') as baselineF:
readBaseline=csv.DictReader(baselineF, delimiter=',', quotechar='"')
for rowb in readBaseline:
print('rowb: ',len(rowb))
with open (tested, 'r') as testedF:
readTested=csv.DictReader(testedF, delimiter=',', quotechar='"')
for rowt in readTested:
print ('rowt: ', len(rowt))
# Rows are the same len
if len(rowb)==len(rowt):
writerSameOracle.writerow(rowb)
writerSameHPCC.writerow(rowt)
print ('Rows are the same')
break
在这段代码中,即使行有相同数量的填充单元格,它似乎也会返回len()=到每个文件的头数。在
你所做的似乎有点让人困惑,但过滤掉任何虚假的东西并不重要:
所以我决定将dict的值加载到list,然后count len()。基于此,使用适当的if语句来完成工作。在
相关问题 更多 >
编程相关推荐