with open('a_file.csv', 'rb') as csvfile:
reader = csv.reader(csvfile)
a_file = [row for row in reader]
csvfile.close()
with open('b_file.csv', 'rb') as csvfile:
reader = csv.reader(csvfile)
b_file = [row for row in reader]
csvfile.close()
# create sets
a_set = set(a_file)
b_set = set(b_file)
# find common elements
common = a_set & b_set
# find elements only in a
a_only = a_set.difference(b_set)
# find elements only in b
b_only = b_set.difference(b_set)
我的代码用于从两个csv文件中提取不同的文本并将它们放在两个不同的变量中。
答案 0 :(得分:3)
a_file
是列表列表,因此无法转换为set
。 set
的元素必须是不可变的(因此可以为它们分配稳定的哈希值),并且list
是可变的。
如果你做了
a_file = [tuple(row) for row in reader]
(并对b_file
执行相同的操作),然后它应该可以正常工作。
此外,无需关闭csvfile
,with
区块正在处理此问题。