如何用python把一个csv文件和另一个中相同保留,不相同的删除
时间: 2024-04-16 16:28:01 浏览: 138
csveditor:删除csv文件中的多列并限制行
要使用 Python 将一个 CSV 文件中与另一个 CSV 文件中相同的内容保留,而删除不同的内容,可以按照以下步骤进行操作:
1. 读取两个 CSV 文件:使用 Python 的 CSV 模块(csv)来读取两个 CSV 文件的内容,并将它们存储在列表或字典中。
```python
import csv
# 读取第一个 CSV 文件
data1 = []
with open('file1.csv', 'r') as file1:
reader = csv.reader(file1)
for row in reader:
data1.append(row)
# 读取第二个 CSV 文件
data2 = []
with open('file2.csv', 'r') as file2:
reader = csv.reader(file2)
for row in reader:
data2.append(row)
```
请确保将 `'file1.csv'` 和 `'file2.csv'` 替换为你实际的文件路径。
2. 比较两个数据集:使用循环遍历其中一个数据集,并检查每一行是否存在于另一个数据集中。如果存在,则保留该行;如果不存在,则删除该行。
```python
# 比较两个数据集并保留相同的内容
result = []
for row in data1:
if row in data2:
result.append(row)
```
3. 将结果写入新的 CSV 文件:使用 csv.writer 将结果列表写入一个新的 CSV 文件。
```python
# 将结果写入新的 CSV 文件
with open('result.csv', 'w', newline='') as result_file:
writer = csv.writer(result_file)
writer.writerows(result)
```
请确保将 `'result.csv'` 替换为你希望保存结果的文件路径。
最后,你将获得一个包含两个 CSV 文件中相同内容的新文件。请注意,这种方法假设你要比较的是整个行而不是特定列。如果你只想比较某些列,请修改代码以适应你的需求。
阅读全文