zoukankan      html  css  js  c++  java
  • 如何读写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)
    
    
  • 相关阅读:
    【C# 调用 Go 语言】
    Go语言多线程 (转)
    CodeSoft 2019 企业版打标签
    (转)FFT求频谱图和功率谱密度图
    使用NI-DAQmx进行振动数据采集
    CentOS7 安装配置笔记
    .net 调用 nsfwjs 进行视频鉴别
    Electron.Net + Linux + Blazor 初尝备忘录
    关于feign调用的时候,动态传url ,以及自定义head
    go使用excelize导出xls
  • 原文地址:https://www.cnblogs.com/Richardo-M-Q/p/13333975.html
Copyright © 2011-2022 走看看