楼主: fccy309
1797 4

求助如何批量下载TuShare的分笔股票数据 [推广有奖]

  • 2关注
  • 1粉丝

大专生

26%

还不是VIP/贵宾

-

威望
0
论坛币
14 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
442 点
帖子
18
精华
0
在线时间
71 小时
注册时间
2011-6-14
最后登录
2023-2-21

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

http://tushare.org/trading.html#id5这个网站链接

import tushare as ts

df =ts.get_tick_data('600848',date='2014-01-09')

#直接保存

df.to_excel('c:/day/600848.xlsx')

如何编写程序实现多线程下载 下列功能了

1、  多支股票,多日批量下载,保存时文件名=股票代码+日期

或是

2、  单支股票,多日批量下载,保存时文件名=股票代码+日期


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:share USHA 批量下载 股票数据 ARE

沙发
gjinwei 发表于 2017-12-31 14:09:56 |只看作者 |坛友微信交流群
tushare不错的资源,写个线程池简单版本:
  1. import tushare as ts
  2. from queue import Queue
  3. import threading


  4. class ThreadPool(object):
  5.     def __init__(self,max_num=20):
  6.         self.queue = Queue(maxsize=max_num)
  7.         for i in range(max_num):
  8.             self.queue.put(threading.Thread)

  9.     def get_thread(self):
  10.         return self.queue.get()

  11.     def add_thread(self):
  12.         self.queue.put(threading.Thread)

  13. pool = ThreadPool(10)


  14. def func(code,date,p):
  15.     df = ts.get_tick_data(code=code,date=date)
  16.     if not df.empty:
  17.         df.to_excel(r'd:\work\%s_%s.xlsx'%(code,date))
  18.     p.add_thread()


  19. def tasks(codes,dates):
  20.     for code in codes:
  21.         for date in dates:
  22.             thread = pool.get_thread()
  23.             t = thread(target=func,args=(code,date,pool))
  24.             t.start()

  25. tasks(['600848','600165'],['2014-01-09','2014-01-08'])
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
fccy309 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
fccy309 发表于 2018-1-5 10:26:45 |只看作者 |坛友微信交流群
gjinwei 发表于 2017-12-31 14:09
tushare不错的资源,写个线程池简单版本:
谢谢!

使用道具

板凳
fccy309 发表于 2018-1-5 11:02:55 |只看作者 |坛友微信交流群
gjinwei 发表于 2017-12-31 14:09
tushare不错的资源,写个线程池简单版本:
日期能不能 写成 如 start='2015-01-05',end='2015-02-09'

使用道具

报纸
gjinwei 发表于 2018-1-5 13:19:43 |只看作者 |坛友微信交流群
可以函数制作日期,也可从文件中加载出来。函数制作日期如下:
  1. import pandas as pd
  2. from datetime import datetime
  3. def prepare_date(start,end,freq='D'):
  4.     date_range=pd.date_range(start=start,end=end,freq=freq)
  5.     return [datetime.strftime(date,'%Y-%m-%d') for date in date_range]
  6. dates=prepare_date(start='2015-01-05',end='2015-02-05')
  7. tasks(['600848','600165'],dates)
复制代码

QQ截图20180105131544.png

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 05:09