python numpy实现多次循环读取文件 等间隔过滤数据示例


Posted in Python onMarch 14, 2020

numpy的np.fromfile会出现如下的问题,只能一次性读取文件的内容,不能追加读取,连续两次的np.fromfile读到的东西一样

如果数据文件太大(几个G或以上)不能一次性全读进去,需要追加读取

python numpy实现多次循环读取文件 等间隔过滤数据示例

而我希望读到的donser1和donser2是连续的两段

(实际使用时,比如说读取的文件是二进制数据文件,每一块文件都包括包头+数据,希望将这两块分开获取,然后再做进一步处理)

代码:

import numpy as np

length=2500
plt_arr=np.linspace(0.0, 0.0, length*2048*16)
start=0
tail_size = 40  #40bit
num_size=16*1024-40 # 16kb -40b


def one_file(f, loop):
  global tail_size, num_size
  while loop:
    num = np.fromfile(f, dtype=np.int16, count=num_size)
    tail=np.fromfile(f, dtype=np.int16, count=tail_size)
    loop=loop-1
    yield num, tail

def main():
  file_path="E://1-gl300c.r3f"
  global length, plt_arr, start
  loop=length
  with open(file_path, 'rb') as f:
    for num, tail in one_file(f, loop):
      plt_arr[start:start+len(num)]=num[:]
      start=start+len(num)
  return   plt_arr[0:start]

if __name__ == "__main__":
  donser=main()
  print(donser)

假设数据文件的格式是 数据+包尾,plt_arr存储全部的数据部分,包尾丢弃,该方法实现了多次连续追加读取数据文件的内容plt_arr最好使用先开好大小再逐次赋值,亲测append方法和concatenate方法时间效率极差或者不用numpy也可以,代码:

def read_in_chunks(filePath, chunk_size=16*1024):
  file_object = open(filePath,'rb')
  count=0
  while True:
    chunk_data = file_object.read(chunk_size)
    if not chunk_data:
      break
    yield chunk_data[0:16*1024-28]


if __name__ == "__main__":
  num=0
  for chunk in read_in_chunks("E:\\1-gl300c.r3f"):
    #process(chunk) # <do something with chunk>
    name=str(num)+".bin"
    num=num+1
    if num<303000:
      continue
    if num>308001:
      break
    file_object = open(name, 'wb')
    file_object.write(chunk)
    file_object.close( )

numpy.fromfile的其他方法可以参考这个

补充知识:python每隔一段时间运行一个函数

用python语言每隔两分钟从接口获取一次数据来插入到数据库

看了大佬们的方法感觉最简单就是:

做一个死循环,让函数执行完后休眠两分钟,然后进入下一次执行,除非手动停止或者有错误停止,否则程序会永远运行下去。

以下是代码:

import get_details
import time

second=2*60
print second
while True:
get_details.sign_cycle()
time.sleep(second)

上面的代码就是让get_details模块的sign_cycle()函数每两分钟执行一次。

是不是超简单!!!!!!

以上这篇python numpy实现多次循环读取文件 等间隔过滤数据示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的迭代器漫谈
Feb 03 Python
Python序列操作之进阶篇
Dec 08 Python
python处理按钮消息的实例详解
Jul 11 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
import的本质解析
Oct 30 Python
django定期执行任务(实例讲解)
Nov 03 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
python实现雨滴下落到地面效果
Jun 21 Python
Python函数基本使用原理详解
Mar 19 Python
Python中and和or如何使用
May 28 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 #Python
python 工具 字符串转numpy浮点数组的实现
Mar 14 #Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 #Python
使用Python爬取弹出窗口信息的实例
Mar 14 #Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 #Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 #Python
在Django中预防CSRF攻击的操作
Mar 13 #Python
You might like
Protoss热键控制
2020/03/14 星际争霸
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
浅谈js的异步执行
2016/10/18 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
2017/01/20 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
switchery按钮的使用方法
2017/12/18 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
Python 处理数据的实例详解
2017/08/10 Python
分析Python中解析构建数据知识
2018/01/20 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
上课迟到检讨书100字
2014/01/11 职场文书
会议接待欢迎词
2014/01/12 职场文书
陈欧广告词
2014/03/14 职场文书
如何写好活动总结
2019/06/21 职场文书
2019感恩宣传标语!
2019/07/05 职场文书