股票数据下载

# -*- coding: utf-8 -*-
#导入两个模块
import tushare as ts
import pandas as pd
import os
pd.set_option('display.max_rows', 10000)  # 显示的最大行数(避免只显示部分行数据)
pd.set_option('display.max_columns', 1000)  # 显示的最大列数(避免列显示不全)
pd.set_option("display.max_colwidth", 1000)  # 每一列最大的宽度(避免属性值或列名显示不全)
pd.set_option('display.width', 1000)  # 每一行的宽度(避免换行)

'''
#TODO 这是一个下载股票数据的脚本,包括更新与历史数据基于 tushare 包得以实现
'''
#dirs = os.getcwd().split('DataCollection')[0]+ 'DataBase/'+ 'StockDataBases/'
#print(dirs)
'''
if os.path.exists(dirs) == False:
    print('数据文件夹不存在,现在创建!', dirs)
    os.makedirs(dirs)
else:
    print('已找到数据文件夹')
'''
from I2_docs import pathfile


#TODO : 这是下载更新全部股票的函数
def getData():
    path = pathfile.filepath('UpdataStockDataSet.csv')
    print('文件地址:', path)
    dataDataFrame = ts.get_stock_basics()
    print(dataDataFrame)
    dataDataFrame.to_csv(path, mode='w+')

#TODO : 这是基于股票号码下载所有历史数据的函数
def readData(path = pathfile.filepath('UpdataStockDataSet.csv')):
    df = pd.read_csv(path, converters={'code': lambda x: str(x)})
    stockcode = list(map(str, df['code']))
    print(stockcode)
    dowloadtime  = 0
    for i in stockcode:
        dowloadtime += 1
        print('开始下载{}股票数据.....'.format(i))
        stock_data = ts.get_hist_data(i)
        '''
        rowscount = stock_data.shape[0]
        columncount = stock_data.shape[-1]
        print('股票号:',i,'行数:',rowscount,'列数:',columncount)
        '''
        try:

            stock_data['codenumber'] = [i for c in range(len(stock_data))]
            print(stock_data)
            stock_data.to_csv(pathfile.filepath('AllStockDataBases.csv'), mode='a')
            print('-----------------------------------------------------')
            print('已下载次数:',dowloadtime,'待下载次数:',len(stockcode)-dowloadtime)
            print('{}/{} has been downloaded,{}股票数据下载完毕'
                  .format(stockcode.index(i) + 1, len(stockcode), i))
            print('-----------------------------------------------------')
        except TypeError as Error:
            print(Error)
            continue

if __name__ == '__main__':
    print(getData())
    print(readData())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值