通达信行情数据获取--python_Python读取通达信数据

更新时间:2023-07-19 04:39:55 阅读: 评论:0

通达信⾏情数据获取--python_Python读取通达信数据
Python读取通达信数据
⼀、介绍
python获取股票数据的⽅法很多,其中Tushare 财经数据接⼝包很好⽤,当然,也可以通过通达信本地的数据获取,这样更为⽅便。
⽇线数据存在这路径下D:\通达信\vipdoc\sh\lday(我的通达信安装⽬录是D盘)
爱情段子接着我们需要的就是解析这些数据,在分别存为csv格式的数据就⾏了,这样我们可以⽅便的⽤pandas或其他⽅法读取和分析。
通达信的⽇线数据格式如下:
每32个字节为⼀天数据每4个字节为⼀个字段,每个字段内低字节在前00~ 03字节:年⽉⽇,整型04 ~ 07字节:开盘价*100,整型08 ~
11字节:最⾼价*100,整型12 ~ 15字节:最低价*100,整型16 ~ 19字节:收盘价*100,整型20 ~ 23字节:成交额(元),float型24~
27字节:成交量(股),整型28~ 31字节:(保留)
赴美打开⼀个.day的⽂件,发现是乱码,以⼆进制格式存储,那么我们只需按照上⾯存的字节数解析下就可以了。
先读取⼀天的数据
>>> f =open("D:/通达信/vipdoc/sh/lday/sh000001.day","rb") >>>
这应该就是⼀天的数据了,我们对这个数据进⾏解析,这⾥需要⽤到struct模块中的unpack ⽅法
>>>import struct >>> f =open("D:/通达信/vipdoc/sh/lday/sh000001.day","rb") >>> li =f.read(32) >>> data
=struct.unpack("lllllfll", li)>>> data (20111010,236308, 236815, 233869, 234479, 39926411264.0, 41745306,和当归
39452973)#分别为⽇期,开盘,最⾼,最低,收盘,成交额,成交量,保留值
unpack⽤法:前⼀个参数是格式,"lllllfii"就是⼀个浮点数格式(f,这⾥对应⽇线数据中的成交额是float格式)和其他整形格式(i,这⾥
对应⽇线数据中的其他数据是int格式)
那么剩下的问题不⼤了
⼆、完整代码
在 sh⽬录下新建了个pythondata⽂件夹,注意⽂件路径分隔符是/
import struct import datetime def stock_csv(filepath,name): data = [] with open(filepath, "rb") as f: file_object_path ="D:/通达
信/vipdoc/sh/pythondata/"+ name +".csv" file_object = open(file_object_path, "w+") whileTrue: stock_date = f.read(4)
stock_open = f.read(4) stock_high =f.read(4) stock_low= f.read(4) stock_clo = f.read(4) stock_amount= f.read(4)
stock_vol = f.read(4) stock_rervation = f.read(4) #date,open,high,low,clo,amount,vol,rervation if not stock_date:break
stock_date = struct.unpack("l", stock_date) #4字节如20091229 stock_open = struct.unpack("l",stock_open)#开盘价
社会实践单位评语*100stock_high = struct.unpack("l", stock_high)#最⾼价*100stock_low= struct.unpack("l", stock_low)#最低价*100stock_clo
= struct.unpack("l", stock_clo)#收盘价*100stock_amount = struct.unpack("f", stock_amount)#成交额stock_vol =
struct.unpack("l", stock_vol)#成交量stock_rervation = struct.unpack("l", stock_rervation)#保留值date_format
=datetime.datetime.strptime(str(stock_date[0]),"%Y%M%d")#格式化⽇期list=date_format.strftime("%Y-%M-
绝对值教案%d")+","+str(stock_open[0]/100)+","+str(stock_high[0]/100.0)+","+str(stock_low[0]/100.0)+","+str(stock_clo[0]/100.0)+","+str( file_object.clo()stock_csv("D:/通达信/vipdoc/sh/lday/sh000001.day","1")
运⾏下,打开1.CSV ⽂件
OK春娇与志明杨幂
三、批量解析
import os import struct import datetime defstock_csv(filepath, name): data = [] with open(filepath, "rb") asf: file_object_path ="D:/通达信/vipdoc/sh/pythondata/"+ name +".csv" file_object = open(file_object_path, "w+") whileTrue: stock_date =
excel平均数
草根精神
stock_date:break stock_date = struct.unpack("l", stock_date) #4字节如20091229 stock_open =
struct.unpack("l",stock_open)#开盘价*100stock_high = struct.unpack("l", stock_high)#最⾼价*100stock_low=
struct.unpack("l", stock_low)#最低价*100stock_clo = struct.unpack("l", stock_clo)#收盘价*100stock_amount =
struct.unpack("f", stock_amount)#成交额stock_vol = struct.unpack("l", stock_vol)#成交量stock_rervation =
struct.unpack("l", stock_rervation)#保留值date_format =datetime.datetime.strptime(str(stock_date[0]),"%Y%M%d")#格式化
⽇期list=date_format.strftime("%Y-%M-
%d")+","+str(stock_open[0]/100)+","+str(stock_high[0]/100.0)+","+str(stock_low[0]/100.0)+","+str(stock_clo[0]/100.0)+","+str( file_object.clo() path ="D:/通达信/vipdoc/sh/lday/"listfile =os.listdir("D:/通达信/vipdoc/sh/lday/")for i in listfile:
stock_csv(path+i, i[:-4])
运⾏下

本文发布于:2023-07-19 04:39:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1087289.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   字节   格式   解析   成交额   字段   路径   成交量
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图