python爬虫时追加到cvs文件时如何只保留一个header
时间: 2023-06-05 11:06:02 浏览: 97
您好!感谢您与我进行对话。关于您的问题,可以在写入 csv 文件之前,先判断该文件是否存在 header。如果存在 header,则不再追加,直接写入数据即可。如果不存在 header,则先写入 header,再写入数据。下面是示例代码:
```python
import csv
import os
# 定义数据
data = [
{'name': 'Alice', 'age': 20},
{'name': 'Bob', 'age': 22},
{'name': 'Cathy', 'age': 21}
]
# 定义文件名和 header
filename = 'data.csv'
header = ['name', 'age']
# 判断文件是否存在 header
if os.path.isfile(filename):
with open(filename, 'r', newline='') as f:
reader = csv.reader(f)
file_header = next(reader)
if file_header == header:
has_header = True
else:
has_header = False
else:
has_header = False
# 写入数据
with open(filename, 'a', newline='') as f:
writer = csv.DictWriter(f, header)
if not has_header:
writer.writeheader()
writer.writerows(data)
```
以上代码会先读取已经存在的 data.csv 文件,判断该文件是否有和待写入数据相同的 header。如果没有,就在最开始写入表头 header。然后就可以直接追加数据了。这样可以避免重复追加表头的问题。希望可以帮到您!
阅读全文