通达信公式改成python_python转换通达信股票数据

在通达信的安装目录里,比如我的D:\zd_pazq\vipdoc\sh\lday,存储上海的A股的每天数据,用文本编辑器打开是这个样子。

如果想得到里面的数据,可以用程序解码转换,这里使用python转换。以申能股票为例:

—————————————————————————————————–

#!/usr/bin/python

import struct

import csv

def exactStock(fileName, code):  #定义一个函数

ofile = open(fileName,’rb’)  #打开文件,rb:只读二进制文件

buf=ofile.read()  #把文件读入到buf中

ofile.close()  #关闭ofile文件

num=len(buf)  #得到文件的长度,存入num变量中

no=num/32  #把num除以32,估计通达信的数据文件是32位为单元的结构

b=0  #定义一个变量b,初始化为0

e=32  #定义一个变量e,初始化为32

items = list()  #定义一个空列表items

for i in range(int(no)):  #把简单格式化的数据放入for循环,开始逐个读入。

a=struct.unpack(‘IIIIIfII’,buf[b:e])  #按照给定的格式解析字节流,返回解析出来的tuple-这里是buf[0:32]

year = int(a[0]/10000);  # 定义一个变量year,把a[0]处理后给year

m = int((a[0]%10000)/100);  #定义一个变量m,把a[0]求模后除以100处理后给m

month = str(m);  #把m格式化为字符串

if m <10 :  #如果m小于10

month = “0” + month;  #加一个字符‘0’

d = (a[0]%10000)%100;  #

day=str(d);

if d< 10 :

day = “0” + str(d);

dd = str(year)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值