码迷,mamicode.com
首页 > 其他好文 > 详细

如何读写csv数据?

时间:2020-07-18 00:41:21      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:注意   with open   模块   headers   代码   iter   com   记录   数据信息   

需求:
http://quotes.money.163.com/service/chddata.html?code=1002566&start=20150104&end=20160108
我们可以通过雅虎网站获取了中国股市(深市)数据集,它以csv数据格式存储:
date,open,High,Low,Close,Volume,Adj,Close
2016-06-30,8.69,8.74,8.66,8.70,36220400,8.70
...
请将平安银行这支股票,在2016中成交量超过50000000的记录存储到另一个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‘)

如何读写csv数据?

标签:注意   with open   模块   headers   代码   iter   com   记录   数据信息   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!