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中正则表达式的用法实例汇总
Aug 18 Python
python中对list去重的多种方法
Sep 18 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
关于Python数据结构中字典的心得
Dec 04 Python
Python3 queue队列模块详细介绍
Jan 05 Python
理论讲解python多进程并发编程
Feb 09 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Numpy(Pandas)删除全为零的列的方法
Sep 11 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 Python
Python中生成ndarray实例讲解
Feb 22 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 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
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
django 2.0更新的10条注意事项总结
2018/01/05 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
Eclipse面试题
2014/03/22 面试题
华为C++笔试题
2014/08/05 面试题
预备党员思想汇报范文
2013/12/29 职场文书
迟到检讨书大全
2014/01/25 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
分家协议书范本
2016/03/22 职场文书
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers