CSV文件操作起来还挺方便的【python爬虫入门进阶】(10)
为啥写这篇文章?
前面几篇文章我们介绍了正则表达式的使用,主要还是介绍数据解析方面的知识点。这篇文章开始我们就将介绍数据存储方面的知识点了。 前面几篇文章还没看的小伙伴,可以抓紧看看啦!!!! 用正则表达式爬取古诗文网站,边玩边学【python爬虫入门进阶】(09) 本文主要介绍csv文件的读写操作,文件简单易懂。
CSV文件是什么?
CSV即Comma Separate Values,这种文件格式经常用来作为不同程序之间的数据交互的格式。 具体文件格式:
1.每条记录占一行 以逗号为分隔符 2.逗号前后的空格会被忽略 3.字段中包含有逗号,该字段必须用双引号括起来 4.字段中包含有换行符,该字段必须用双引号括起来 5.字段前后包含有空格,该字段必须用双引号括起来 6.字段中的双引号用两个双引号表示 7.字段中如果有双引号,该字段必须用双引号括起来 8.第一条记录,可以是字段名
如何读取CSV文件
通过reader方法读取
首先,以content_test.csv文件为例进行说明。
- 读取csv中的所有列
with open('content_test.csv', 'r') as fp:
reader = csv.reader(fp)
# 过滤掉标题行
next(reader)
for x in reader:
title = x[1]
print(x)
print(title)
这里通过csv.reader(fp)
创建csv_reader对象,通过调用next(reader)
方法可以过滤掉标题行。
遍历reader可以获取到每一行的数据,指定 x[1]
可以获取到每行第二个单元格的数据。
最终的运行结果是:
通过DictReader方法读取
用DictReader方法创建redader对象, 不会包含标题那行的数据。 reader是一个迭代器。遍历这个迭代器,返回的是一个字典。
with open('content_test.csv', 'r') as fp:
reader = csv.DictReader(fp)
for x in reader:
value = {'序号': x['序号'], '标题': x['标题']}
print(value)
运行结果是:
如何向CSV文件中写入数据
与读取csv的方法类似的,向CSV文件中写数据的方法就是通过writer对象来操作。
通过writer方法
headers = ['用户名', '年龄', '身高']
values = [
('张三', 18, 179),
('李四', 20, 180),
('王五', 25, 177),
('码农飞哥', 18, 171)
]
with open('user_info.csv', 'w', encoding='utf-8', newline='') as fp:
writer = csv.writer(fp)
writer.writerow(headers)
writer.writerows(values)
通过headers来指定CSV的表头。通过values指定单元格的数据。
通过写open('user_info.csv', 'w', encoding='utf-8', newline='')
文件的mode是w。通过encoding='utf-8'
指定编码格式为utf-8,如果不指定的话可能会出现中文乱码的情况。指定newline=''
指定行与行之间的空格,如果不指定的话则每行之间有空格。
通过csv.writer(fp)
创建一个writer对象。
通过writerow方法写入表头
通过writerows方法写入每行数据。
运行结果是:
通过DictWriter方法
headers = ['用户名', '年龄', '身高']
values = [
{'用户名': '张三', '年龄': 18, '身高': 179},
{'用户名': '李四', '年龄': 20, '身高': 180},
{'用户名': '王五', '年龄': 25, '身高': 177},
{'用户名': '码农飞哥', '年龄': 18, '身高': 171}
]
with open('user_info2.csv', 'w', encoding='utf-8', newline='') as fp:
writer = csv.DictWriter(fp, headers)
# 写入表头数据的时候需要调用writeheader
writer.writeheader()
writer.writerows(values)
DictWriter的方法在写入时是以字典的形式写入数据。
通过csv.DictWriter(fp, headers)
创建writer对象。
通过 writeheader()
方法写入表头
通过writerows(values)
方法写入表单元格的数据。
总结
CSV文件操作起来还挺方便的
相关文章
- Python之枚举法解数学题
- 英语没学好到底能不能做coder,别再纠结了先学起来
- Python中字典的常用方法
- 一个help函数解决了python的所有文档信息查看
- python 约瑟夫生者小游戏 用list实现
- 【Python】实现自动扫雷,挑战世界纪录
- 【Python】控制结构,这个教程一般人我不给
- day15-SpringMVC执行流程
- Python迭代对象、迭代器与生成器
- Pycharm的下载与安装使用
- Python解释器的下载安装与使用
- day13-自定义拦截器
- 用Python制作销售数据可视化看板,展示分析一步到位
- 关于在若依平台中建立树形结构无法使用按钮编辑和新增的修改(若依前后端不分离)
- python3GUI--仿做一个网易云音乐By:PyQt5(附下载地址)
- Python人工智能之图片识别,一行代码实现图片文字识别
- 【Python】爱不释手的弹球小游戏
- matplotlib可视化系列之【排版】
- 利用Python破解视频网站的VIP视频,终身会员不是梦
- try...catch中finally子句的使用