【发布时间】:2021-07-29 08:49:39
【问题描述】:
我在 file2.csv 中有两个名为 file1.csv 和 file2.csv 的 CSV 文件只有一列只包含五条记录,并且在 file1.csv 我有三列包含超过一千条记录我想获取那些包含在 file2.csv 中的记录强> 例如这是我的 file1.csv
'A J1, Jhon1',jhon1@jhon.com, A/B-201 Test1
'A J2, Jhon2',jhon2@jhon.com, A/B-202 Test2
'A J3, Jhon3',jhon3@jhon.com, A/B-203 Test3
'A J4, Jhon4',jhon4@jhon.com, A/B-204 Test4
.......and more records
在我的 file2.csv 中,我现在只有 5 条记录,但未来可能会很多
A/B-201 Test1
A/B-2012 Test12
A/B-203 Test3
A/B-2022 Test22
所以我必须在 index[2] 或 index[-1]
从我的file1.csv 中查找记录
这就是我所做的,但它没有给我任何输出它只是返回空列表
import csv
file1 = open('file1.csv','r')
file2 = open('file2.csv','r')
f1 = list(csv.reader(file1))
f2 = list(csv.reader(file2))
new_list = []
for i in f1:
if i[-1] in f2:
new_list.append(i)
print('New List : ',new_list)
它给了我这样的输出
New List : []
如果我做错了什么请帮助纠正我。
【问题讨论】:
-
zip()盲目地将元素按照它们在源文件中出现的顺序进行配对。它不会帮助您找到两个文件之间的匹配项。要查找匹配项,您基本上需要将列表 1 中的所有元素与列表 2 中的所有元素进行比较。 -
我以为我已经给了你这个想法:你基本上需要将列表 1 中的所有元素与列表 2 中的所有元素进行比较
-
你好@Tomalak 检查我已经删除了 zip 但我仍然没有得到任何输出
-
您不应该“删除
zip()”。您应该将列表 1 中的所有元素与列表 2 中的所有元素进行比较。首先,编写一个嵌套循环。 -
你会如何在纸上做到这一点?写下步骤。现在用它来编写你的代码。
标签: python python-3.x csv