def get_dayline_by_fid(str_fid = 'sh000001', restrictSize = 0): str_fid = str_fid.replace('.day','') str_tdx_dayline_format = "iiiiifii" size_of_tdx_dayline = 32 #32 bytes per struct if str_fid[0:2] == 'sh': spath = tdxpath + sh_path else: spath = tdxpath + sz_path filename = spath + str_fid + ".day" f = open(filename, 'rb') if restrictSize != 0: fsize = os.path.getsize(filename) sr = fsize - 32 * restrictSize if sr < 0: sr = 0 f.seek(sr) #for i in range(0,9999): dayline = [] while 1: rd = f.read(32) if not rd: break #print i, len(rd) st = struct.unpack(str_tdx_dayline_format, rd) #print st q = libqda_struct.fdaydata() q.pars( parse_time(st[0]), int(st[1]) / 100., int(st[2]) / 100., int(st[3]) / 100., int(st[4]) / 100., float(st[5]), int(st[6]), int(st[7]) ) dayline.append(q) return dayline f.close()
def get_dayline_by_fid_america(str_fid = '74#AA-b', seekPoint = 0, readLength = 0): str_fid = str_fid.replace('.day','') str_tdx_dayline_format_america = "iffffiii" size_of_tdx_dayline = 32 spath = tdxpath + america_path f = open(spath + str_fid + ".day", 'rb') #for i in range(0,9999): dayline = [] #skip is ok f.seek(seekPoint) rlength = 0 while 1: rd = f.read(32) if not rd: break #print i, len(rd) st = struct.unpack(str_tdx_dayline_format_america, rd) #print st q = libqda_struct.fdaydata() q.pars( parse_time(st[0]), st[1],st[2],st[3],st[4], int(st[5]), int(st[6]), int(st[7]) ) dayline.append(q) rlength+=1; if rlength == readLength: break return dayline f.close()
def read_3(): fr = fp.read(size_of_fday); ftime, op, hig, low, cl, vol, amount, dealcount = struct.unpack(sfday, fr); mdata = libqda_struct.fdaydata(); mdata.pars(ftime, op, hig, low, cl, vol, amount, dealcount); return mdata;