最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年07月03日 11:10:03   作者:Linias  
這篇文章主要介紹了python二進(jìn)制文件的轉(zhuǎn)譯詳解的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(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ù)的文件。可以采用以下辦法

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)把二進(jì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ù)細(xì)節(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編寫判斷真實文件類型工具

    Python編寫判斷真實文件類型工具

    常在河邊走,哪能不濕鞋,網(wǎng)上獲取的各種文件后綴真真假假,甚至一不小心就會中招,所以本文就來用Python編寫一個判斷真實文件類型工具吧
    2025-01-01
  • Python繪制計算機CPU占有率變化的折線圖

    Python繪制計算機CPU占有率變化的折線圖

    這篇文章主要為大家詳細(xì)介紹了Python繪制計算機CPU占有率變化的折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • python opencv檢測目標(biāo)顏色的實例講解

    python opencv檢測目標(biāo)顏色的實例講解

    下面小編就為大家分享一篇python opencv檢測目標(biāo)顏色的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python標(biāo)準(zhǔn)庫之time模塊的語法與簡單使用

    python標(biāo)準(zhǔn)庫之time模塊的語法與簡單使用

    在平常的代碼中,我們常常需要與時間打交道,那么在Python中,與時間處理有關(guān)的模塊就包括:time、datetime以及calendar,這篇文章主要給大家介紹了關(guān)于python標(biāo)準(zhǔn)庫之time模塊的語法與使用的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • python opencv實現(xiàn)圖片旋轉(zhuǎn)矩形分割

    python opencv實現(xiàn)圖片旋轉(zhuǎn)矩形分割

    這篇文章主要為大家詳細(xì)介紹了python opencv實現(xiàn)圖片旋轉(zhuǎn)矩形分割,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Flask SocketIO實現(xiàn)動態(tài)繪圖的示例詳解

    Flask SocketIO實現(xiàn)動態(tài)繪圖的示例詳解

    Flask-SocketIO 是基于 Flask 的一個擴(kuò)展,用于簡化在 Flask 應(yīng)用中集成 WebSocket 功能,本文主要介紹了Flask SocketIO如何實現(xiàn)動態(tài)繪圖,需要的可以參考下
    2023-11-11
  • Python是怎樣處理json模塊的

    Python是怎樣處理json模塊的

    這篇文章主要介紹了Python是怎樣處理json模塊的,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Django緩存Cache使用詳解

    Django緩存Cache使用詳解

    這篇文章主要介紹了Django緩存Cache使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 使用Python和jieba庫生成中文詞云的示例代碼

    使用Python和jieba庫生成中文詞云的示例代碼

    在文本分析和數(shù)據(jù)可視化的領(lǐng)域中,詞云是一種展示文本數(shù)據(jù)中關(guān)鍵詞頻率的直觀方式,Python作為一種強大的編程語言,提供了多種庫來幫助我們生成詞云,在本文中,我們將通過一個簡單的示例,展示如何使用Python生成中文詞云,需要的朋友可以參考下
    2024-07-07
  • 如何用python整理附件

    如何用python整理附件

    本篇文章給大家整理了關(guān)于如何用python整理附件的相關(guān)知識點,學(xué)習(xí)python的朋友可以跟著測試下。
    2018-05-05

最新評論

武川县| 渝北区| 武清区| 高淳县| 从化市| 浦东新区| 河北省| 青浦区| 泸溪县| 渭源县| 苍梧县| 马公市| 南昌市| 咸阳市| 枞阳县| 泗阳县| 田阳县| 隆林| 神池县| 芦溪县| 黄梅县| 乌恰县| 邢台市| 太仆寺旗| 高唐县| 蕉岭县| 会理县| 广水市| 宁波市| 二手房| 祁连县| 台中市| 平谷区| 江津市| 抚州市| 湘西| 洪雅县| 三穗县| 肥东县| 忻州市| 陆河县|