sqlserver 更新 datetime 数据_获取股票分笔数据存储本地

# -*- coding: utf-8 -*-
"""
Created on Thu Dec  1 16:58:49 2016

@author: duchao
"""
import pandas as pd
import time
import tushare as ts
import datetime
import random
import os

code = input("输入股票代码:")

code = str(code)
code = code.zfill(6)
#股票代码格式化 0开头的 代码,标准代码比如 000001

print("开始更新:%s..."%code)
#判断已经存在的表格的最新数据日期

filename = code+'.csv'
#指定文件存储的地方

if os.path.exists(filename):
    chu = pd.read_csv(filename,encoding="gb2312").tail(5)
    duan = chu.iloc[3,7]
  
    a = duan
    b = datetime.datetime.strptime(a,"%Y-%m-%d").date()
    c = b + datetime.timedelta(days=1)
    d = datetime.datetime.strftime(c,"%Y-%m-%d")
    s1 = d
    #如果已经存在表格,就以表中日期最大,第二天作为开始取数日期
else:
    s1 = '2014-01-01'        
#如果不存在表,就直接 指定开始日期
 
df = ts.get_hist_data(code,start=s1)
    
df1 = df.reset_index(drop=False)
df2 = list(df1['date'])
df2.reverse()

wei =  df2
#获得开盘日期,剔除 周末和节假日
if len(wei) ==0:
    print ("已经最新")

#最后更新,因为 当天的数据,会被重复追加 tushare bug
s2 = datetime.datetime.strptime(s1, "%Y-%m-%d").date()
s4 = wei[0]
s5 = datetime.datetime.strptime(s4,"%Y-%m-%d").date()
if s2 > s5:
    wei = []

#如果 开始日期大于,开盘最大日期,那么就把 日期列表清空

for d in wei:
    #在 正确的 时间周期内,获取 分笔数据,分次写入到 csv中
    fenbi = ts.get_tick_data(code,date=d)

    if len(fenbi) < 10:
        continue
    fenbi['day'] = d
    fenbi['code'] = code

    if os.path.exists(filename):
        fenbi.to_csv(filename, mode='a', header=None)
    else:
        fenbi.to_csv(filename)
    print(code,d)
    time.sleep(random.randint(0,2))

print("更新成功:%s"%code)
#循环更新股票代码
    
print("全部HS300更新成功!")

time.sleep(10)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值