Python实现将通信达.day文件读取为DataFrame

yipeiwu_com5年前Python基础

如下所示:

import os
import struct
import pandas as pd

def readTdxLdayFile(fname="C:\\TdxW_HuaTai\\vipdoc\\sh\\lday\\sh601628.day"):
 dataSet=[]
 with open(fname,'rb') as fl:
  buffer=fl.read() #读取数据到缓存
  size=len(buffer) 
  rowSize=32 #通信达day数据,每32个字节一组数据
  code=os.path.basename(fname).replace('.day','')
  for i in range(0,size,rowSize): #步长为32遍历buffer
   row=list( struct.unpack('IIIIIfII',buffer[i:i+rowSize]) )
   row[1]=row[1]/100
   row[2]=row[2]/100
   row[3]=row[3]/100
   row[4]=row[4]/100
   row.pop() #移除最后无意义字段
   row.insert(0,code)
   dataSet.append(row) 

 data=pd.DataFrame(data=dataSet,columns=['code','tradeDate','open','high','low','close','amount','vol'])
 print(data)

readTdxLdayFile()

以上这篇Python实现将通信达.day文件读取为DataFrame就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现求两个字符串的最长公共子串方法

python实现求两个字符串的最长公共子串方法

如下所示: # coding:utf-8 ''' 求两个字符串的最长公共子串 思想:建立一个二维数组,保存连续位相同与否的状态 ''' def getNumofCommonSub...

详解python中递归函数

函数执行流程 def foo1(b,b1=3): print("foo1 called",b,b1) def foo2(c): foo3(c) print...

详解python实现读取邮件数据并下载附件的实例

详解python实现读取邮件数据并下载附件的实例

详解python实现读取邮件数据并下载附件的实例 实现结果图: 实现代码: #!/usr/bin/python2.7 # _*_ coding: utf-8 _*_ """ @A...

用vue.js组件模拟v-model指令实例方法

1、问题描述 在使用v-model指令实现输入框数据双向绑定,输入值时对应的这个变量的值也随着变化;但是这里不允许使用v-model,需要写一个组件实现v-model指令效果 <...

python中print的不换行即时输出的快速解决方法

关于Python2.x和3.x带来的print不换行的问题:昨天有发过推文,利用end = 定义,解决了横向的小问题,但是由于屏幕显示的问题,若字符串长度过大,则会引起不便。两个或多个p...