比较 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
我有 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