【Python3网络爬虫开发实战】5.1.3-CSV文件存储

【Python3网络爬虫开发实战】5.1.3-CSV文件存储
最新回答
欲往

2026-01-06 16:04:49

Python3网络爬虫开发实战-CSV文件存储

CSV(Comma-Separated Values)是一种以纯文本形式存储表格数据的文件格式,具有结构简单、易于处理的特点。在Python中,可以使用内置的csv模块或第三方库(如pandas)来读写CSV文件。

1. 写入CSV文件1.1 基本写入

使用csv.writer可以逐行写入数据:

import csvwith open('data.csv', 'w') as csvfile: writer = csv.writer(csvfile) writer.writerow(['id', 'name', 'age']) # 写入表头 writer.writerow(['10001', 'Mike', 20]) # 写入数据行 writer.writerow(['10002', 'Bob', 22]) writer.writerow(['10003', 'Jordan', 21])

输出文件内容:

id,name,age10001,Mike,2010002,Bob,2210003,Jordan,211.2 自定义分隔符

通过delimiter参数修改分隔符(如空格):

with open('data.csv', 'w') as csvfile: writer = csv.writer(csvfile, delimiter=' ') # 使用空格分隔 writer.writerow(['id', 'name', 'age']) writer.writerow(['10001', 'Mike', 20])

输出文件内容:

id name age10001 Mike 201.3 批量写入多行

使用writerows()方法写入二维列表:

with open('data.csv', 'w') as csvfile: writer = csv.writer(csvfile) writer.writerow(['id', 'name', 'age']) writer.writerows([['10001', 'Mike', 20], ['10002', 'Bob', 22]])1.4 字典写入

使用csv.DictWriter写入字典数据(适合结构化数据):

with open('data.csv', 'w') as csvfile: fieldnames = ['id', 'name', 'age'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() # 写入表头 writer.writerow({'id': '10001', 'name': 'Mike', 'age': 20})1.5 追加写入

将文件打开模式改为'a'(追加):

with open('data.csv', 'a') as csvfile: fieldnames = ['id', 'name', 'age'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writerow({'id': '10004', 'name': 'Durant', 'age': 22})1.6 中文编码处理

指定encoding='utf-8'避免乱码:

with open('data.csv', 'a', encoding='utf-8') as csvfile: writer.writerow({'id': '10005', 'name': '王伟', 'age': 22})2. 读取CSV文件2.1 基本读取

使用csv.reader逐行读取:

import csvwith open('data.csv', 'r', encoding='utf-8') as csvfile: reader = csv.reader(csvfile) for row in reader: print(row) # 每行是一个列表

输出:

['id', 'name', 'age']['10001', 'Mike', '20']['10002', 'Bob', '22']['10005', '王伟', '22']2.2 使用pandas读取

pandas.read_csv()更适合数据分析:

import pandas as pddf = pd.read_csv('data.csv')print(df)

输出:

id name age0 10001 Mike 201 10002 Bob 222 10005 王伟 223. 关键注意事项
  1. 文件模式:

    'w':覆盖写入。

    'a':追加写入。

    'r':读取。

  2. 编码问题:

    中文数据需指定encoding='utf-8'。

  3. 数据结构:

    列表写入:writerow()或writerows()。

    字典写入:DictWriter需定义fieldnames。

  4. 性能优化:

    大数据量建议使用pandas或分块处理。

4. 总结
  • 写入:通过csv.writer或csv.DictWriter实现,支持自定义分隔符、追加模式和中文编码。
  • 读取:使用csv.reader逐行解析,或pandas.read_csv()快速加载为DataFrame。
  • 应用场景:CSV适合存储简单的结构化数据,是爬虫和数据处理的常用格式。

掌握CSV的读写操作是网络爬虫和数据存储的基础技能,尤其在处理表格数据时非常高效。