最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用numpy按一定格式讀取bin文件的實(shí)現(xiàn)

 更新時(shí)間:2023年05月10日 10:04:50   作者:drunk_snail  
這篇文章主要介紹了python使用numpy按一定格式讀取bin文件的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用numpy按一定格式讀取bin文件

python環(huán)境下,如何使用numpy像matlab一樣按一定格式讀取bin文件?

bin文件就是將數(shù)據(jù)按16進(jìn)制形式存儲(chǔ)的二進(jìn)制文件(binary),可以使用WINHEX、Notepad++(需安裝插件)等以16進(jìn)制形式打開(kāi),如圖用notepad++打開(kāi)。

由于使用python中的read()讀取二進(jìn)制文件時(shí)是以字符串形式讀取,且每次只能讀取一個(gè)字節(jié),十分不方便。

偶然發(fā)現(xiàn)可以使用numpy中的fromfile按指定格式對(duì)bin文件進(jìn)行讀寫(xiě),方便了許多。

NumPy提供了多種存取數(shù)組內(nèi)容的文件操作函數(shù)。

保存數(shù)組數(shù)據(jù)的文件可以是二進(jìn)制格式或者文本格式。

二進(jìn)制格式的文件又分為NumPy專(zhuān)用的格式化二進(jìn)制類(lèi)型和無(wú)格式類(lèi)型。

  • tofile()將數(shù)組中的數(shù)據(jù)以二進(jìn)制格式寫(xiě)進(jìn)文件
  • tofile()輸出的數(shù)據(jù)不保存數(shù)組形狀和元素類(lèi)型等信息
  • fromfile()函數(shù)讀回?cái)?shù)據(jù)時(shí)需要用戶(hù)指定元素類(lèi)型,并對(duì)數(shù)組的形狀進(jìn)行適當(dāng)?shù)男薷?/li>

這里重點(diǎn)介紹fromfile

numpy.fromfile(file,?dtype=float,?count=-1,?sep='',?offset=0,?*,?like=None)?
  • file是待讀取內(nèi)容,可以是文件、路徑、字符串
  • dtype返回?cái)?shù)組的數(shù)據(jù)類(lèi)型。對(duì)于二進(jìn)制文件,它用于確定文件中項(xiàng)目的大小和字節(jié)順序。支持大多數(shù)內(nèi)置數(shù)字類(lèi)型,也支持?jǐn)U展類(lèi)型。1.18.0開(kāi)始支持復(fù)數(shù)格式
  • count:要讀取的項(xiàng)目數(shù)量(不一定以字節(jié)為單位),count = -1表示讀取所有項(xiàng)目(即完整文件)
  • sep:項(xiàng)目之間的分隔符(如果文件是文本文件)??眨?ldquo;”)分隔符表示文件應(yīng)被視為二進(jìn)制文件。分隔符中的空格(“”)與零個(gè)或多個(gè)空格字符匹配。僅由空格組成的分隔符必須至少匹配一個(gè)空格
  • offset:距文件當(dāng)前位置的偏移量(以字節(jié)為單位)。默認(rèn)為0。僅允許用于二進(jìn)制文件。可以和count搭配用于讀取指定位置和長(zhǎng)度的內(nèi)容
  • like:引用對(duì)象以允許創(chuàng)建非NumPy數(shù)組的數(shù)組,如果傳入一個(gè)像like一樣支持   __array_function__ 協(xié)議的數(shù)組形式,結(jié)果將由它來(lái)定義。在這種情況下,它確保創(chuàng)建與通過(guò)此參數(shù)傳入的對(duì)象兼容的數(shù)組對(duì)象。 
import numpy as np
a = np.arange(24)
b = np.fromfile("F:/a.bin", dtype=np.int32, count=5, offset=8)
print(a, '\n', b)

由上圖可以看出,數(shù)據(jù)是以32位的十六進(jìn)制數(shù)形式存儲(chǔ),也就是一個(gè)數(shù)占4個(gè)字節(jié)。(tofile寫(xiě)入數(shù)據(jù)的順序?yàn)?‘C’ order)。

此時(shí),若設(shè)置count=5, offset=8,也就是從0開(kāi)始偏移8個(gè)字節(jié),讀取5個(gè)數(shù)

結(jié)果如圖:

image

python讀取bin文件并下發(fā)串口

# coding:utf-8
import time, serial
from struct import *
import binascii
file = open('E:\\1.bin', 'rb')
i = 0
while 1:
    c = file.read(1)
    # 將字節(jié)轉(zhuǎn)換成16進(jìn)制;
    ssss = str(binascii.b2a_hex(c))[2:-1]
    print(str(binascii.b2a_hex(c))[2:-1])
    if not c:
        break
    ser = serial.Serial('COM3', 57600, timeout=1)
    ser.write(bytes().fromhex(ssss))# 將16進(jìn)制轉(zhuǎn)換為字節(jié)
    if i % 16 == 0:
        time.sleep(0.001)
    #寫(xiě)每一行等待的時(shí)間
    i += 1
    ser.close()
file.close()

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pandas之排序函數(shù)sort_values()的實(shí)現(xiàn)

    Pandas之排序函數(shù)sort_values()的實(shí)現(xiàn)

    這篇文章主要介紹了Pandas之排序函數(shù)sort_values()的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python解決多線程運(yùn)行異步代碼報(bào)錯(cuò)"There?is?no?current?event?loop"

    Python解決多線程運(yùn)行異步代碼報(bào)錯(cuò)"There?is?no?current?event?loop

    在Python開(kāi)發(fā)中,我們經(jīng)常需要同時(shí)處理高并發(fā)網(wǎng)絡(luò)請(qǐng)求和CPU密集型任務(wù),不過(guò)當(dāng)嘗試在多線程環(huán)境中運(yùn)行異步代碼時(shí),可能會(huì)報(bào)錯(cuò)"There?is?no?current?event?loop",下面我們看看具體的解決方法吧
    2025-04-04
  • Python 的AES加密與解密實(shí)現(xiàn)

    Python 的AES加密與解密實(shí)現(xiàn)

    這篇文章主要介紹了Python 的AES加密與解密實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • matplotlib繪制直方圖的基本配置(萬(wàn)能模板案例)

    matplotlib繪制直方圖的基本配置(萬(wàn)能模板案例)

    本文主要介紹了matplotlib繪制直方圖的基本配置(萬(wàn)能模板案例),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 新手Python環(huán)境配置指南及pip安裝教程

    新手Python環(huán)境配置指南及pip安裝教程

    這篇文章主要給大家介紹了新手Python環(huán)境配置指南及pip安裝教程的相關(guān)資料,pip是一款非常方便的python包管理工具,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Python基礎(chǔ)教程之異常處理詳解

    Python基礎(chǔ)教程之異常處理詳解

    Python的異常處理能力是很強(qiáng)大的,它有很多內(nèi)置異常,可向用戶(hù)準(zhǔn)確反饋出錯(cuò)信息,下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之異常處理的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • 一文詳解Python灰色預(yù)測(cè)模型實(shí)現(xiàn)示例

    一文詳解Python灰色預(yù)測(cè)模型實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Python灰色預(yù)測(cè)模型實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Python裝飾器詳細(xì)介紹

    Python裝飾器詳細(xì)介紹

    這篇文章主要介紹了Python @property裝飾器的用法,在Python中,可以通過(guò)@property裝飾器將一個(gè)方法轉(zhuǎn)換為屬性,從而實(shí)現(xiàn)用于計(jì)算的屬性,下面文章圍繞主題展開(kāi)更多相關(guān)詳情,感興趣的小伙伴可以參考一下
    2022-12-12
  • Python如何設(shè)置utf-8為默認(rèn)編碼的問(wèn)題

    Python如何設(shè)置utf-8為默認(rèn)編碼的問(wèn)題

    這篇文章主要介紹了Python如何設(shè)置utf-8為默認(rèn)編碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Jupyter?notebook無(wú)法鏈接內(nèi)核、運(yùn)行代碼問(wèn)題

    Jupyter?notebook無(wú)法鏈接內(nèi)核、運(yùn)行代碼問(wèn)題

    文章主要介紹了在VSCode中使用Jupyter?Notebook遇到的問(wèn)題及其解決過(guò)程,問(wèn)題包括包版本沖突、文件沖突、路徑錯(cuò)誤和找不到文件,通過(guò)逐一排查和安裝相關(guān)依賴(lài)包,最終解決了這些問(wèn)題,使得Jupyter?Notebook可以在VSCode中正常運(yùn)行
    2025-02-02

最新評(píng)論

和平县| 庆城县| 象州县| 缙云县| 西安市| 务川| 白山市| 从江县| 瑞金市| 南和县| 凤凰县| 丰台区| 连平县| 通渭县| 湄潭县| 策勒县| 美姑县| 鹤峰县| 盐津县| 房产| 吉安市| 乐陵市| 阳朔县| 都匀市| 永定县| 财经| 孟村| 曲靖市| 汉沽区| 罗定市| 原平市| 从化市| 德钦县| 吕梁市| 江山市| 宜宾市| 武胜县| 息烽县| 六盘水市| 和林格尔县| 辉县市|