如何在已有CSV文件上追加数据而不是覆盖原有内容?
时间: 2024-12-12 13:17:03 浏览: 8
在Python中,如果你想在现有CSV文件上追加数据而不仅仅是覆盖,可以使用csv模块的`DictReader`和`DictWriter`结合,先读取原始文件的内容,再添加新数据,最后合并到一个新的CSV文件中。以下是示例代码:
```python
import csv
# 原始CSV文件路径
input_file = 'existing_data.csv'
# 新增数据列表
new_data = [
{'ID': 'NEW1', 'ColumnA': 'Value1', 'ColumnB': 'Value2'},
{'ID': 'NEW2', 'ColumnA': 'Value3', 'ColumnB': 'Value4'}
]
# 读取原始文件数据
with open(input_file, 'r', newline='') as reader:
reader = csv.DictReader(reader)
existing_rows = [row for row in reader] # 将数据保存为列表
# 合并新旧数据
for new_row in new_data:
existing_rows.append(new_row)
# 输出到新的CSV文件
output_file = 'updated_data.csv'
with open(output_file, 'w', newline='', encoding='utf-8') as writer:
fieldnames = list(existing_rows[0].keys())
writer = csv.DictWriter(writer, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(existing_rows)
```
这段代码首先读取了`existing_data.csv`中的所有行,并将它们存储在一个列表里。然后,它将新数据追加到这个列表中。最后,它会用新的列表写入一个新的CSV文件`updated_data.csv`。
阅读全文