我正在尝试编写一个脚本来比较来自不同电子表格的两个字符串列表,并打印两个电子表格共有的字符串列表。我是一个新手,但到目前为止我已经有了:
import csv
f1 = file("KaySinTan09.csv", "r")
f2 = file("Khanna11.csv", "r")
c1=csv.reader(open('KaySinTan09.csv', 'rb'), delimiter=' ', quotechar='|')
c2=csv.reader(open('Khanna11.csv', 'rb'), delimiter=' ', quotechar='|')
output = c1.intersection(c2)
print output
我收到错误提示“AttributeError:'_ csv.reader'对象没有属性'交集'”。
关于我哪里出错的任何建议?
答案 0 :(得分:2)
csv.reader不是一个集合,您需要将其转换为一个才能执行此操作:
c1= set(csv.reader(open('KaySinTan09.csv', 'rb'), delimiter=' ', quotechar='|'))
c2 = set(csv.reader(open('Khanna11.csv', 'rb'), delimiter=' ', quotechar='|'))
output = c1.intersection(c2)
print output
答案 1 :(得分:0)
csv.reader
未返回列表 - 它返回CSV阅读器对象 - 因此.intersection
方法无效。也许这会:
c1=csv.reader(open('KaySinTan09.csv', 'rb'), delimiter=' ', quotechar='|')
c2=csv.reader(open('Khanna11.csv', 'rb'), delimiter=' ', quotechar='|')
c1_list = []
c2_list = []
for c in c1:
c1_list.append(c)
for c in c2:
c2_list.append(c)
output = set(c1_list).intersection(set(c2_list))
print output
未经测试。