亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python二進制文件的轉(zhuǎn)譯詳解

 更新時間:2019年07月03日 11:10:03   作者:Linias  
這篇文章主要介紹了python二進制文件的轉(zhuǎn)譯詳解的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

首先導(dǎo)入所需的包:import struct

struct有以下幾個主要的函數(shù):

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

例如:我需要讀取一個名為filename,存放著形狀為[100,1025]的浮點數(shù)的文件??梢圆捎靡韵罗k法

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

同理如果想轉(zhuǎn)把二進制轉(zhuǎn)成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
#有時還需考慮字節(jié)順序,如為big-endian,則以上語句改為 data = struct.unpack('>'+str(d_len/4)+'f',d_str)
data = struct.unpack(d_len2*'d',d_str)

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

具體函數(shù)細節(jié)請查詢  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中的結(jié)構(gòu)體交換數(shù)據(jù),還要考慮有的c或c++編譯器使用了字節(jié)對齊,通常是以4個字節(jié)為單位的32位系統(tǒng),故而struct根據(jù)本地機器字節(jié)順序轉(zhuǎn)換.可以用格式中的第一個字符來改變對齊方式.定義如下:

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就是低位字節(jié)排放在內(nèi)存的低地址端(棧頂),高位字節(jié)排放在內(nèi)存的高地址端(棧底)

>:Big-Endian就是高位字節(jié)排放在內(nèi)存的低地址端,低位字節(jié)排放在內(nèi)存的高地址端。

!: 網(wǎng)絡(luò)字節(jié)序:TCP/IP各層協(xié)議將字節(jié)序定義為Big-Endian,因此TCP/IP協(xié)議中使用的字節(jié)序通常稱之為網(wǎng)絡(luò)字節(jié)序。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 求1-100之間的奇數(shù)或者偶數(shù)之和的實例

    python 求1-100之間的奇數(shù)或者偶數(shù)之和的實例

    今天小編就為大家分享一篇python 求1-100之間的奇數(shù)或者偶數(shù)之和的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python實現(xiàn)柵欄密碼的加密解密方法詳解

    Python實現(xiàn)柵欄密碼的加密解密方法詳解

    這篇文章主要介紹了Python實現(xiàn)柵欄密碼的加密解密方法,所謂柵欄密碼,就是把要加密的明文分成N個一組,然后把每組的第1個字連起來,形成一段無規(guī)律的話。不過柵欄密碼本身有一個潛規(guī)則,就是組成柵欄的字母一般不會太多
    2023-01-01
  • python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用)

    python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用)

    這篇文章主要介紹了python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python數(shù)據(jù)處理之臨近匹配的實現(xiàn)詳解

    Python數(shù)據(jù)處理之臨近匹配的實現(xiàn)詳解

    在數(shù)據(jù)處理中,經(jīng)常需要找到最接近給定值的元素或數(shù)據(jù)點,這種需求在科學(xué)、工程和統(tǒng)計分析中非常常見,Python 提供了多種方法來實現(xiàn)這種臨近匹配,下面就跟隨小編一起學(xué)習(xí)一下吧
    2024-02-02
  • Python中使用支持向量機(SVM)算法

    Python中使用支持向量機(SVM)算法

    這篇文章主要為大家詳細介紹了Python中使用支持向量機SVM算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python xpath表達式如何實現(xiàn)數(shù)據(jù)處理

    Python xpath表達式如何實現(xiàn)數(shù)據(jù)處理

    這篇文章主要介紹了Python xpath表達式如何實現(xiàn)數(shù)據(jù)處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • python多線程多并發(fā)啟動appium服務(wù)的實現(xiàn)

    python多線程多并發(fā)啟動appium服務(wù)的實現(xiàn)

    使用Dos命令或者bat批處理來手動啟動appium服務(wù),啟動效率低下,本文主要介紹了python多線程多并發(fā)啟動appium服務(wù)的實現(xiàn),具有一定的 參考價值,感興趣的可以了解一下
    2024-02-02
  • python中關(guān)于xmltodict的使用

    python中關(guān)于xmltodict的使用

    這篇文章主要介紹了python中關(guān)于xmltodict的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Python3實現(xiàn)英文字母轉(zhuǎn)換哥特式字體實例代碼

    Python3實現(xiàn)英文字母轉(zhuǎn)換哥特式字體實例代碼

    這篇文章主要給大家介紹了關(guān)于Python3實現(xiàn)英文字母轉(zhuǎn)換哥特式字體的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python遍歷文件夾和讀寫文件的實現(xiàn)代碼

    Python遍歷文件夾和讀寫文件的實現(xiàn)代碼

    這篇文章主要介紹了Python遍歷文件夾和讀寫文件的實現(xiàn)代碼,需要的朋友可以參考下
    2016-08-08

最新評論