25. 读写csv数据
2021/4/25 10:25:15
本文主要是介绍25. 读写csv数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
例如,我们编写爬虫从豆瓣网爬取了一些书籍的信息,以csv数据格式存储:
书名, 作者, 出版社, 价格 精通scrapy网络爬虫, 刘硕, 清华大学出版社, 46.00 算法导论, Charles E.Leiserson, 人民邮电出版社, 85.00 Python灰帽子, Justin Seitz, 电子工业出版社, 39.00 ...
要求:请将书价格高于80.00的书记录存储到另一csv文件中。
解决方案:
标准库中的csv模块,使用其中reader和writer完成csv文件读写。
- 对于
csv.reader()
:
csv_reader = reader(iterable [, dialect='excel'] [optional keyword args])
传入一个文件对象,返回一个迭代器,迭代器的每个迭代读取CSV文件(它可以跨多个输入行)的一行内容。
>>> import csv>>> rf = open('books.csv')>>> reader = csv.reader(rf, delimiter=',')>>> next(reader)['书名,作者,出版社,价格']>>> next(reader)['精通scrapy网络爬虫,刘硕,清华大学出版社,46.00']
delimiter参数指定分隔符,csv默认分隔符是,
,为,
时可省略。通过next()
方法每次迭代一行
- 对于
csv.writer()
:
csv_writer = csv.writer(fileobj [, dialect='excel'] [optional keyword args])
传入一个文件对象,返回一个迭代器,迭代器的每个迭代写入一行内容到CSV文件中。
>>> wf = open('demo.csv', 'w')>>> writer = csv.writer(wf, delimiter=' ') #指定分隔符为空格>>> writer.writerow([1, 2, 3])7>>> writer.writerow(['x', 'y', 'z'])7>>> writer.writerow([7, 8, 9])7>>> wf.flush()
# cat demo.csv 1 2 3 x y z 7 8 9
- 方案示例:
books.csv:
书名,作者,出版社,价格 精通scrapy网络爬虫,刘硕,清华大学出版社,46.00 算法导论,Charles E.Leiserson,人民邮电出版社,85.00 Python灰帽子,Justin Seitz,电子工业出版社,39.00 精通scrapy网络爬虫1,刘硕,清华大学出版社,46.00 算法导论1,Charles E.Leiserson,人民邮电出版社,85.00 Python灰帽子1,Justin Seitz,电子工业出版社,39.00 精通scrapy网络爬虫2,刘硕,清华大学出版社,46.00 算法导论2,Charles E.Leiserson,人民邮电出版社,85.00 Python灰帽子2,Justin Seitz,电子工业出版社,39.00 精通scrapy网络爬虫3,刘硕,清华大学出版社,46.00 算法导论3,Charles E.Leiserson,人民邮电出版社,85.00 Python灰帽子3,Justin Seitz,电子工业出版社,39.00
import csvwith open('books.csv') as rf: reader = csv.reader(rf) headers = next(reader) with open('books_out.csv', 'w') as wf: writer = csv.writer(wf) writer.writerow(headers) for book in reader: price = book[-1] if price and float(price) >= 80.00: writer.writerow(book)
books_out.csv:
书名,作者,出版社,价格 算法导论,Charles E.Leiserson,人民邮电出版社,85.00 算法导论1,Charles E.Leiserson,人民邮电出版社,85.00 算法导论2,Charles E.Leiserson,人民邮电出版社,85.00 算法导论3,Charles E.Leiserson,人民邮电出版社,85.00
这篇关于25. 读写csv数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27文件掩码什么意思?-icode9专业技术文章分享
- 2024-12-27如何使用循环来处理多个订单的退款请求,代码怎么写?-icode9专业技术文章分享
- 2024-12-27VSCode 在编辑时切换到另一个文件后再切回来如何保持在原来的位置?-icode9专业技术文章分享
- 2024-12-27Sealos Devbox 基础教程:使用 Cursor 从零开发一个 One API 替代品 审核中
- 2024-12-27TypeScript面试真题解析与实战指南
- 2024-12-27TypeScript大厂面试真题详解与解析
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解