【发布时间】:2014-08-24 18:29:15
【问题描述】:
我目前有一个脚本版本,它通过将两个 csv 文件一个接一个地读入列表/集合来比较两个文件。 但是,csv目前对于内存来说太大了,所以我想逐行迭代并打印出不同的行。
我不能执行两个 csvreaders 循环,因为内部循环将读取整个文件,而外部循环将在第一行
我宁愿这样做而不是 diff,这样当行不匹配时我可以打印额外的信息来找出原因
编辑:到目前为止,我做了类似的事情,但 csv 太大而无法一次全部加载到列表中
def readFile(filename,columns):
mylist=[]
with open(filename,'rb') as f:
reader = csv.reader(f)
for line in reader:
mylist.append(tuple(line[i] for i in columns))
return mylist
mylist1=readFile(filename1,columns)
mylist2=readFile(filename2,columns)
diff1=diff(mylist1,mylist2)
diff2=diff(mylist2,mylist2)
【问题讨论】:
-
很好。到目前为止,您尝试过什么?
-
我在上面举了一个例子
标签: python csv diff with-statement