處理二進位制資料離不開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 作為...