python處理二進位制資料

2021-07-22 11:45:55 字數 1422 閱讀 6488

處理二進位制資料離不開python的struct模組,struct理解上你可以把它理解為c語言的結構體,使用該模組的pack和unpack方法,可以很容易的把二進位制資料轉換為常用的型別資料,如整型、字元型等

結構體如下:

struct header

將二進位制資料流解析為常用的資料型別,例如:

python

arsc_file = open(file, "rb") #二進位制讀取檔案

data = arsc_file.read(12) #讀取12位元組

table_type_2,head2,file4,package4 = struct.unpack("2h2i", data)

#將這12個位元組分拆為2個unsigned short(h)和2個unsigned int(i)型別資料

把常用的資料型別打包成二進位制資料,例如:

new_head2 = 2                                           

head2 = 1

file4 = 8

new_data = struct.pack("2h2i4h", table_type_2, new_head2, file4, package4,head2,head2,head2,head2)

#把常用的型別資料轉換二進位製流,引數一是二進位製流格式組成

format

c type

python

位元組數x

pad byte

no value1c

char

string of length 11b

signed char

integer1b

unsigned char

integer1?

_bool

bool1h

short

integer2h

unsigned short

integer2i

intinteger4i

unsigned int

integer or long4l

long

integer4l

unsigned long

long4q

long long

long8q

unsigned long

long long8f

float

float4d

double

float8s

char

string1p

char

string1p

void *

long

Python處理二進位製流(二)

將生成stuct字串封裝為乙個函式data2struct,廢話不多數,如下 name bin name.encode utf 8 轉二進位制 img cv2.imread name ndarray型別,按bgr順序排序,uint8型別 img bin img.tostring bytes型別 或者用...

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

二進位制資料

今天的問題是處理。本來想在資料庫中只存儲存路徑的,但是同組的同事說別那樣,還是直接存比較好,雖然不知道為什麼一定要存,但是或許他說的有道理吧,至於為什麼暫時還沒想通。處理二進位制遇到的第乙個問題是讀寫的問題,data open filepath,rb data open filepath,wb 作為...