欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python二進制文件的轉譯詳解

系統 1706 0

首先導入所需的包:import struct

struct有以下幾個主要的函數:

            
# 按照給定的格式(fmt),把數據封裝成字符串(實際上是類似于c結構體的字節流)
pack(fmt, v1, v2, ...)
# 按照給定的格式(fmt)解析字節流string,返回解析出來的tuple
unpack(fmt, string) 
# 計算給定的格式(fmt)占用多少字節的內存
calcsize(fmt)
          

例如:我需要讀取一個名為filename,存放著形狀為[100,1025]的浮點數的文件。可以采用以下辦法

            
import numpy as np
import struct 
# 加載測試數據
f = open('filename','rb')
# 102500為文檔中包含的數字個數,而一個浮點數占4個字節
data_raw = struct.unpack('f'*102500,f.read(4*102500))
f.close()
verify_data = np.asarray(verify_data_raw).reshape(-1,1025)
          

同理如果想轉把二進制轉成double型:

            
import numpy as np
import struct
f = open('data8.dat','rb')
d_str = f.read()
f.close()
d_len = len(d_str)
d_len2 = d_len//8
#有時還需考慮字節順序,如為big-endian,則以上語句改為 data = struct.unpack('>'+str(d_len/4)+'f',d_str)
data = struct.unpack(d_len2*'d',d_str)
          

注意:fmt前的數字必須為int型,即int*'d' 否則會報‘can't multiply sequence by non-int of type 'float'' 的錯誤

具體函數細節請查詢??struct官方文檔

下面提供了了fmt表示方法

FORMAT PYTHON TYPE STANDARD SIZE
x no value
c string of length 1 1
b integer 1
B integer 1
? bool 1
h integer 2
H integer 2
i integer 4
I integer 4
l integer 4
L integer 4
q integer 8
Q integer 8
f float 4
d float 8
s string
p string
P integer

為了同c中的結構體交換數據,還要考慮有的c或c++編譯器使用了字節對齊,通常是以4個字節為單位的32位系統,故而struct根據本地機器字節順序轉換.可以用格式中的第一個字符來改變對齊方式.定義如下:

CHARACTER BYTE ORDER SIZE ALIGNMENT
@ native native native
= native standard none
< little-endian standard none
> big-endian standard none
! network (= big-endian) standard none

< : Little-Endian就是低位字節排放在內存的低地址端(棧頂),高位字節排放在內存的高地址端(棧底)

>:Big-Endian就是高位字節排放在內存的低地址端,低位字節排放在內存的高地址端。

!:?網絡字節序:TCP/IP各層協議將字節序定義為Big-Endian,因此TCP/IP協議中使用的字節序通常稱之為網絡字節序。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99久久精品日本一区二区免费 | 日日操夜夜摸 | 婷婷精品国产一区二区三区日韩 | 在线观看亚洲一区二区三区 | 日韩精品视频一区二区三区 | 天天操一操 | 日本三级韩国三级香港三级a级 | 欧美精品亚洲一区二区在线播放 | 欧美一页 | 91av视频在线 | 日本高清在线观看视频www | 都市妖奇谈 电视剧 | 亚洲特黄视频 | 亚洲 欧美 激情 小说 另类 | 亚洲国产精品二区久久 | 天天色综合天天 | 久久精品视频网站 | 久久综合久久精品 | 欧美日韩国产在线 | 久草不卡视频 | 亚洲视频在线一区二区 | 日韩在线观看中文字幕 | 国产日韩一区二区三免费高清 | 亚洲精品在线视频 | 波多野结衣办公室在线 | 成人18免费入口 | 素人视频免费观看 | 第一福利在线观看 | 久久久亚洲一区 | 99超级碰碰成人香蕉网 | 一区二区三区在线电影 | 日韩中文字幕网站 | 天天更新天天久久久更新影院 | 精品视频久久久久 | 波多野结衣 久久 | 超污视频在线看 | 国产WW久久久久久久久久 | 一二区视频 | 蜜桃传媒一区二区亚洲AV | 毛片在线不卡 | 欧美成人免费丝袜视频在线观看 |