注册 登录
编程论坛 Python论坛

一段从TUshare接口获取股票成交明细数据的代码,一起学习

xcy524100 发布于 2021-08-08 13:28, 1030 次点击
def importxj():  # 从TUshare接口导出模块
    str1, str2 = text2.get(), text3.get()  # 获取text1,text2l输入框的字符
    gpdm = str(text1.get())  # 获取text1中输入的股票代码
    path1 = 'd:\\sj\\'+gpdm[0:6]+'\\'  # 构造一个存放明细数据的目录
    ifpath = os.path.exists(path1)  # 判断path1这个目录在不在
    if not ifpath:  # 如果目录不在则建立这个目录
        os.makedirs(path1)  # 建立path1目录
    starttime = datetime.datetime.strptime(str1[0:4]+'-'+str1[4:6]+'-'+str1[6:8]+' 01:01:01', '%Y-%m-%d %H:%M:%S')  # 取起始日期
    days1 = days()  # days函数获取起始至终止日期之间的天数,并在下面用int(days1[0:3])+1函数转成数值
    print(days1)
    for date1 in range(1, days1+1):  # 循环导出股票明细数据
        ne = path1 + gpdm[0:6] + starttime.strftime('%Y-%m-%d') + '.xls'  # 构造存放的目录和文件名
        df = tt.get_tick_data(gpdm[0:6], date=starttime.strftime('%Y-%m-%d'), src='tt', retry_count=2)  # 从tt接口获取股票明细数据
        time.sleep(1)  # 延时1秒防止接口数据堵车造成错误
        try:  # 设置错误处理
            df.to_excel(ne)  # 保存接口的数据到excel文件ne中,如果当日的数据文件不存在就会出错,会执行except的代码段
            text.insert(tk.INSERT, ne+'\r\n')
            print(ne)
        except:
            text.insert(tk.INSERT, "数据不存在\n\r")

        starttime = starttime + datetime.timedelta(days=1)  # 导出日期加1天

def days():  # days函数获取起始至终止日期之间的天数
    str1, str2 = text2.get(), text3.get()  # 获取text1,text2l输入框的字符
    date1, date2 = datetime.datetime.strptime(str1, "%Y%m%d"), datetime.datetime.strptime(str2, "%Y%m%d")  # 将字符转日期型并赋值给date1,date2,注意日期格式“%Y%m%d”
    days1 = date2 - date1
    return days1.days  # 如果直接写return date2-date1那么返回的是一个日期数据,不能直接参与运算
0 回复
1