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

yipeiwu_com6年前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返回真假值(True or False)小技巧

Python返回真假值(True or False)小技巧

在昨天关于substring的blog中有如下一段代码: 也许你已经发现,在Python 3中其实有办法只用一行完成函数: 复制代码 代码如下: >>> def is...

python实现将英文单词表示的数字转换成阿拉伯数字的方法

本文实例讲述了python实现将英文单词表示的数字转换成阿拉伯数字的方法。分享给大家供大家参考。具体实现方法如下: import re _known = { 'zero': 0,...

pygame学习笔记(4):声音控制

pygame.mixer是一个用来处理声音的模块,其含义为“混音器”。游戏中对声音的处理一般包括制造声音和播放声音两部分,这里仅学习了播放声音部分。 1、pygame.mixer启动与初...

详解pandas安装若干异常及解决方案总结

详解pandas安装若干异常及解决方案总结

在为Python安装第三方工具pandas出现了若干问题。 当我在cmd命令环境输入pip install pandas准备安装pandas时,出现了错误提示:Microsoft Vis...

python读写LMDB文件的方法

python读写LMDB文件的方法

LMDB的全称是Lightning Memory-Mapped Database(快如闪电的内存映射数据库),它的文件结构简单,包含一个数据文件和一个锁文件: LMDB文件可以同时由多...