午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

python numpy實(shí)現(xiàn)多次循環(huán)讀取文件 等間隔過濾數(shù)據(jù)示例

瀏覽:12日期:2022-08-02 11:57:53

numpy的np.fromfile會(huì)出現(xiàn)如下的問題,只能一次性讀取文件的內(nèi)容,不能追加讀取,連續(xù)兩次的np.fromfile讀到的東西一樣

如果數(shù)據(jù)文件太大(幾個(gè)G或以上)不能一次性全讀進(jìn)去,需要追加讀取

python numpy實(shí)現(xiàn)多次循環(huán)讀取文件 等間隔過濾數(shù)據(jù)示例

而我希望讀到的donser1和donser2是連續(xù)的兩段

(實(shí)際使用時(shí),比如說讀取的文件是二進(jìn)制數(shù)據(jù)文件,每一塊文件都包括包頭+數(shù)據(jù),希望將這兩塊分開獲取,然后再做進(jìn)一步處理)

代碼:

import numpy as nplength=2500plt_arr=np.linspace(0.0, 0.0, length*2048*16)start=0tail_size = 40 #40bitnum_size=16*1024-40 # 16kb -40bdef 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, taildef 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)

假設(shè)數(shù)據(jù)文件的格式是 數(shù)據(jù)+包尾,plt_arr存儲全部的數(shù)據(jù)部分,包尾丟棄,該方法實(shí)現(xiàn)了多次連續(xù)追加讀取數(shù)據(jù)文件的內(nèi)容plt_arr最好使用先開好大小再逐次賦值,親測append方法和concatenate方法時(shí)間效率極差或者不用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的其他方法可以參考這個(gè)

補(bǔ)充知識:python每隔一段時(shí)間運(yùn)行一個(gè)函數(shù)

用python語言每隔兩分鐘從接口獲取一次數(shù)據(jù)來插入到數(shù)據(jù)庫

看了大佬們的方法感覺最簡單就是:

做一個(gè)死循環(huán),讓函數(shù)執(zhí)行完后休眠兩分鐘,然后進(jìn)入下一次執(zhí)行,除非手動(dòng)停止或者有錯(cuò)誤停止,否則程序會(huì)永遠(yuǎn)運(yùn)行下去。

以下是代碼:

import get_detailsimport timesecond=2*60print secondwhile True:get_details.sign_cycle()time.sleep(second)

上面的代碼就是讓get_details模塊的sign_cycle()函數(shù)每兩分鐘執(zhí)行一次。

是不是超簡單!!!!!!

以上這篇python numpy實(shí)現(xiàn)多次循環(huán)讀取文件 等間隔過濾數(shù)據(jù)示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 中文在线字幕免费观 | 最近中文字幕在线观看视频 | 夜夜骑夜夜操 | 女人高潮特级毛片 | 午夜黄网 | 午夜av影院 | 日韩a级大片 | 久久99精品久久久久久国产越南 | 午夜激情小视频 | 免费在线看黄色 | 香蕉视频在线观看免费 | eeuss中文 | jizz一区二区 | 日韩有码第一页 | 中文字幕综合网 | 免费黄色一级片 | 最近中文字幕第一页 | 一级免费av | 天天操综合 | 亚洲永久免费精品 | 欧日韩视频| 国产麻豆精品在线 | 一区二区三区在线看 | 婷婷激情五月 | 特级a毛片 | 91无套直看片红桃 | 一级黄色大片视频 | 婷婷色中文网 | 亚洲高清一区二区三区 | 黄色免费在线观看网站 | 亚洲精品无吗 | 亚洲精品久久久久国产 | 免费观看国产精品 | 波多野结衣亚洲 | 欧美精品99久久久 | 欧美精品999 | 日韩欧美中文 | 亚洲精品1区 | 亚洲视频自拍 | 九九免费视频 | 久久久久久久久久成人 |