欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

股票数据下载

程序员文章站 2022-06-03 17:52:56
...
# -*- 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())
相关标签: python代码整合