比较 python 中的 csv 文件以查看两者中的内容

Comparing csv files in python to see what is in both

我有 2 个 csv 文件要比较,其中一个是所有国家/地区的主文件,另一个是只有几个国家/地区的主文件。这是我为一些基本测试所做的尝试:

char = {}
with open('all.csv', 'rb') as lookupfile:
    for number, line in enumerate(lookupfile):
        chars[line.strip()] = number

with open('locations.csv') as textfile:
    text = textfile.read()
    print text
for char in text:
    if char in chars:
        print("Country found {0} found in row {1}".format(char, chars[char]))

我正在尝试获取国家/地区主文件的最终输出,其中有一个辅助列表明它是否出现在其他列表中

谢谢!

您可以使用与原始循环完全相同的逻辑:

with open('locations.csv') as textfile:
    for line in textfile:
        if char.strip() in chars:
            print("Country found {0} found in row {1}".format(char, chars[char]))

试试这个:

  • 编写一个函数,将 CSV 转换为 Python 字典,其中包含您在 CSV 中找到的每个国家/地区作为键。它可以看起来像这样:

{'US':True, 'UK':True}

  • 对两个 CSV 文件执行此操作。
  • 现在,遍历要比较的 csv 的 dictionary.keys(),然后检查其他字典是否具有相同的键。

这将是一个非常快的算法,因为字典给了我们持续的时间查找,而且你有一个数据结构,你可以很容易地使用它来查看你找到了哪些国家。

正如 Eric 在评论中提到的,您也可以使用 set membership 来处理这个问题。这实际上可能是更简单、更好的方法:

set1 = set()                   # A new empty set
set1.add("country")
if country in set:
  #do something