python实现比较两个csv文件中的指定的两列数据,将相等的数据打印出来
时间: 2023-05-24 18:07:00 浏览: 764
java 实现两excel(或csv)文件的比对(以某几列作为键值,比对指定列的值差异)
5星 · 资源好评率100%
假设要比较的两个csv文件分别为file1.csv和file2.csv,要比较的两列数据分别为第1列和第3列,可以使用以下代码实现:
```python
import csv
# 打开文件1并读取数据到字典中
file1_dict = {}
with open('file1.csv', 'r') as file1:
reader = csv.reader(file1)
for row in reader:
file1_dict[row[0]] = row[2] # 字典的键为第1列数据,值为第3列数据
# 打开文件2并比较数据
with open('file2.csv', 'r') as file2:
reader = csv.reader(file2)
for row in reader:
if row[0] in file1_dict and file1_dict[row[0]] == row[2]:
print('File1: %s %s, File2: %s %s' % (row[0], file1_dict[row[0]], row[0], row[2]))
```
解释一下上述代码:
1. 使用csv模块打开文件1并读取其中的数据到字典file1_dict中。字典的键为第1列数据,值为第3列数据。这样可以方便地比较两个csv文件中的数据。
2. 使用csv模块打开文件2并读取其中的数据。对于每一行数据,检查其第1列数据是否在file1_dict中,并且第3列数据是否与file1_dict中相对应的值相等。如果是,则说明这两个csv文件中相应的行数据中的第1列和第3列数据相等,打印这条信息。
需要注意的是,上述代码假设文件中的数据没有重复,否则只有最后出现的一条数据会被保存到字典中。如果数据可能重复,可以将字典的值改为列表来保存多条数据。
阅读全文