下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第python使用numpy按一定格式讀取bin文件的實現(xiàn)目錄使用numpy按一定格式讀取bin文件這里重點介紹fromfilepython讀取bin文件并下發(fā)串口總結(jié)
使用numpy按一定格式讀取bin文件
python環(huán)境下,如何使用numpy像matlab一樣按一定格式讀取bin文件?
bin文件就是將數(shù)據(jù)按16進(jìn)制形式存儲的二進(jìn)制文件(binary),可以使用WINHEX、Notepad++(需安裝插件)等以16進(jìn)制形式打開,如圖用notepad++打開。
由于使用python中的read()讀取二進(jìn)制文件時是以字符串形式讀取,且每次只能讀取一個字節(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ù)讀回數(shù)據(jù)時需要用戶指定元素類型,并對數(shù)組的形狀進(jìn)行適當(dāng)?shù)男薷?/p>
這里重點介紹fromfile
numpy.fromfile(file,
dtype=float,
count=-1,
sep='',
offset=0,
*,
like=None)
file:是待讀取內(nèi)容,可以是文件、路徑、字符串dtype:返回數(shù)組的數(shù)據(jù)類型。對于二進(jìn)制文件,它用于確定文件中項目的大小和字節(jié)順序。支持大多數(shù)內(nèi)置數(shù)字類型,也支持?jǐn)U展類型。1.18.0開始支持復(fù)數(shù)格式count:要讀取的項目數(shù)量(不一定以字節(jié)為單位),count=-1表示讀取所有項目(即完整文件)sep:項目之間的分隔符(如果文件是文本文件)。空()分隔符表示文件應(yīng)被視為二進(jìn)制文件。分隔符中的空格()與零個或多個空格字符匹配。僅由空格組成的分隔符必須至少匹配一個空格offset:距文件當(dāng)前位置的偏移量(以字節(jié)為單位)。默認(rèn)為0。僅允許用于二進(jìn)制文件。可以和count搭配用于讀取指定位置和長度的內(nèi)容。like:引用對象以允許創(chuàng)建非NumPy數(shù)組的數(shù)組,如果傳入一個像like一樣支持__array_function__協(xié)議的數(shù)組形式,結(jié)果將由它來定義。在這種情況下,它確保創(chuàng)建與通過此參數(shù)傳入的對象兼容的數(shù)組對象。
importnumpyasnp
a=np.arange(24)
b=np.fromfile("F:/a.bin",dtype=32,count=5,offset=8)
print(a,'\n',b)
由上圖可以看出,數(shù)據(jù)是以32位的十六進(jìn)制數(shù)形式存儲,也就是一個數(shù)占4個字節(jié)。(tofile寫入數(shù)據(jù)的順序為Corder)。
此時,若設(shè)置count=5,offset=8,也就是從0開始偏移8個字節(jié),讀取5個數(shù)
結(jié)果如圖:
python讀取bin文件并下發(fā)串口
#coding:utf-8
importtime,serial
fromstructimport*
importbinascii
file=open('E:\\1.bin','rb')
i=0
while1:
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])
ifnotc:
break
ser=serial.Serial('COM3',57600,timeout=1)
ser.write(bytes().fromhex(ssss))#將16進(jìn)制轉(zhuǎn)換為字節(jié)
ifi%16==0:
time.sleep(0.001)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 22184-2025谷物和豆類散存糧食溫度測定指南
- 湖南省衡陽市常寧市2025-2026學(xué)年七年級上學(xué)期期末質(zhì)量監(jiān)測道德與法治試卷(含答案)
- 安徽省蚌埠市固鎮(zhèn)縣部分學(xué)校2025-2026學(xué)年九年級上學(xué)期1月期末數(shù)學(xué)試題答案
- 2025-2026學(xué)年山東煙臺長島第二實驗學(xué)校 九年級(上下冊)期末道德與法治試卷(無答案)
- 五年級數(shù)學(xué)期末考試卷及答案
- 為民服務(wù)題庫及答案
- 網(wǎng)絡(luò)的題目及答案
- 初中數(shù)學(xué)培訓(xùn)
- 北京警察學(xué)院《Photoshop 圖像處理》2024 - 2025 學(xué)年第一學(xué)期期末試卷
- 2022~2023安全員考試題庫及答案第254期
- 特種工安全崗前培訓(xùn)課件
- 2026屆福建省三明市第一中學(xué)高三上學(xué)期12月月考?xì)v史試題(含答案)
- (正式版)DB51∕T 3342-2025 《爐灶用合成液體燃料經(jīng)營管理規(guī)范》
- 2026北京海淀初三上學(xué)期期末語文試卷和答案
- 2025學(xué)年度人教PEP五年級英語上冊期末模擬考試試卷(含答案含聽力原文)
- 醫(yī)院醫(yī)院醫(yī)院后勤管理
- 2025年岐黃天使中醫(yī)課后試題及答案
- 肺癌術(shù)后呼吸功能鍛煉指導(dǎo)
- 保障供貨協(xié)議書
- 2025年中國糖尿病腎臟病基層管理指南(全文)
- 顱內(nèi)腫瘤切除術(shù)手術(shù)配合
評論
0/150
提交評論