如何读写csv数据?

需求:
我们编写网络爬虫从豆瓣网爬取一些书籍的信息,以csv的格式存储:
书名,作者,出版社,价格
精通scrapy网络爬虫,刘硕,清华大学出版社,46.00
算法导论,Charles E.leiserson,人民邮电出版社,85.00
python灰帽子,Justin Seitz,电子工业出版社,39.00
....
请将价格高于80.00的书,记录存储到另一个csv文件中

思路:
使用标准库中的csv模块,可以使用其中的reader和writer完成文件读写

代码:

import csv
from urllib.request import urlretrieve

# 通过urlretrieve的方法下载文件到本地,code后接要抓取的股票代码号,&后接的是时间,可以省略
urlretrieve('http://quotes.money.163.com/service/chddata.html?code=1002566&start=20150104&end=20160108','yikang.csv')

# 下面过滤出想要的数据信息,注意编码的方式
with open('yikang.csv','r',encoding='gbk') as rf:  # 若是python二中则要以rb的方法打开
    reader = csv.reader(rf)  # 得到一个迭代器的对象
    with open('yikang2.csv','w',encoding='gbk') as wf:
        writer = csv.writer(wf)
        # 写入header
        headers = next(reader)  # 迭代器的next()方法
        writer.writerow(headers)
        # 根据条件对数据进行过滤
        for row in reader:
            if row[0] < '2016-01-01':
                break
            if int(float('124872735.08')) > 50000000:  # 注意要先用float的方法,直接用Int方法会报错
                writer.writerow(row)

print('end')

===================================================================================
import csv

with 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[-2]
            if price and float(price) >= 80.00:
                writer.writerow(book)

原文地址:https://www.cnblogs.com/Richardo-M-Q/p/13333975.html