赞
踩
在通达信的安装目录里,比如我的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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。