股票数据下载
程序员文章站
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())
上一篇: 股票数据抓取