一段从TUshare接口获取股票成交明细数据的代码,一起学习
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那么返回的是一个日期数据,不能直接参与运算