欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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

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

二進(jìn)制格式的文件又分為NumPy專用的格式化二進(jìn)制類型和無格式類型。

  • tofile()將數(shù)組中的數(shù)據(jù)以二進(jìn)制格式寫進(jìn)文件
  • tofile()輸出的數(shù)據(jù)不保存數(shù)組形狀和元素類型等信息
  • fromfile()函數(shù)讀回?cái)?shù)據(jù)時(shí)需要用戶指定元素類型,并對數(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ù)類型。對于二進(jìn)制文件,它用于確定文件中項(xiàng)目的大小和字節(jié)順序。支持大多數(shù)內(nèi)置數(shù)字類型,也支持?jǐn)U展類型。1.18.0開始支持復(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搭配用于讀取指定位置和長度的內(nèi)容。
  • like:引用對象以允許創(chuàng)建非NumPy數(shù)組的數(shù)組,如果傳入一個(gè)像like一樣支持   __array_function__ 協(xié)議的數(shù)組形式,結(jié)果將由它來定義。在這種情況下,它確保創(chuàng)建與通過此參數(shù)傳入的對象兼容的數(shù)組對象。 
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寫入數(shù)據(jù)的順序?yàn)?‘C’ order)。

此時(shí),若設(shè)置count=5, offset=8,也就是從0開始偏移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)
    #寫每一行等待的時(shí)間
    i += 1
    ser.close()
file.close()

總結(jié)

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

相關(guān)文章

  • wxPython窗口的繼承機(jī)制實(shí)例分析

    wxPython窗口的繼承機(jī)制實(shí)例分析

    這篇文章主要介紹了wxPython窗口的繼承機(jī)制,較為詳細(xì)的講述了wxPython窗口的繼承機(jī)制及相關(guān)用法,并對其中的易錯(cuò)點(diǎn)進(jìn)行了簡單的分析,需要的朋友可以參考下
    2014-09-09
  • Python 十大特性

    Python 十大特性

    這篇文章主要給大家分享的是Python十大特性,Python 編程語言是世界上發(fā)展最快的編程語言。這一高級通用編程語言提供了廣泛的實(shí)際應(yīng)用,并且是一種非常流行的認(rèn)證,下面我們就來看看它都有哪些特性吧
    2022-01-01
  • python在一個(gè)范圍內(nèi)取隨機(jī)數(shù)的簡單實(shí)例

    python在一個(gè)范圍內(nèi)取隨機(jī)數(shù)的簡單實(shí)例

    在本篇內(nèi)容里小編給大家分享了關(guān)于python在一個(gè)范圍內(nèi)取隨機(jī)數(shù)的簡單實(shí)例內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-08-08
  • python asyncio 協(xié)程庫的使用

    python asyncio 協(xié)程庫的使用

    這篇文章主要介紹了python asyncio 協(xié)程庫的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python如何實(shí)現(xiàn)SSH遠(yuǎn)程連接與文件傳輸

    Python如何實(shí)現(xiàn)SSH遠(yuǎn)程連接與文件傳輸

    這篇文章主要介紹了Python如何實(shí)現(xiàn)SSH遠(yuǎn)程連接與文件傳輸問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 通俗的講解深度學(xué)習(xí)中CUDA,cudatookit,cudnn和pytorch的關(guān)系

    通俗的講解深度學(xué)習(xí)中CUDA,cudatookit,cudnn和pytorch的關(guān)系

    有些剛?cè)胄械呐笥芽偸歉悴磺宄﨏UDA,cudatookit,cudnn和pytorch的關(guān)系,那么今天這篇文章用通俗易懂的話講解了他們之間的關(guān)系,需要的朋友可以參考下,相信會(huì)對你有所幫助
    2023-03-03
  • Python用Bottle輕量級框架進(jìn)行Web開發(fā)

    Python用Bottle輕量級框架進(jìn)行Web開發(fā)

    這篇文章主要介紹了Python用Bottle輕量級框架進(jìn)行Web開發(fā)的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • 使用python 3實(shí)現(xiàn)發(fā)送郵件功能

    使用python 3實(shí)現(xiàn)發(fā)送郵件功能

    本文通過實(shí)例代碼給大家介紹了使用python 3實(shí)現(xiàn)發(fā)送郵件功能,代碼簡單易懂非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • python如何在列表、字典中篩選數(shù)據(jù)

    python如何在列表、字典中篩選數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了python如何在列表、字典中篩選數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 徹底理解Python list切片原理

    徹底理解Python list切片原理

    本篇文章主要介紹了Python list切片原理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論