亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python中struct模塊對字節流/二進制流的操作教程

2020-02-23 04:18:03
字體:
來源:轉載
供稿:網友

前言

最近使用Python解析IDX文件格式的MNIST數據集,需要對二進制文件進行讀取操作,其中我使用的是struct模塊。查了網上挺多教程都寫的挺好的,不過對新手不是很友好,所以我重新整理了一些筆記以供快速上手。

注:教程中以下四個名詞同義:二進制流、二進制數組、字節流、字節數組

快速上手

在struct模塊中,將一個整型數字、浮點型數字或字符流(字符數組)轉換為字節流(字節數組)時,需要使用格式化字符串fmt告訴struct模塊被轉換的對象是什么類型,比如整型數字是'i',浮點型數字是'f',一個ascii碼字符是's'。

def demo1(): # 使用bin_buf = struct.pack(fmt, buf)將buf為二進制數組bin_buf # 使用buf = struct.unpack(fmt, bin_buf)將bin_buf二進制數組反轉換回buf # 整型數 -> 二進制流 buf1 = 256 bin_buf1 = struct.pack('i', buf1) # 'i'代表'integer' ret1 = struct.unpack('i', bin_buf1) print bin_buf1, ' <====> ', ret1 # 浮點數 -> 二進制流 buf2 = 3.1415 bin_buf2 = struct.pack('d', buf2) # 'd'代表'double' ret2 = struct.unpack('d', bin_buf2) print bin_buf2, ' <====> ', ret2 # 字符串 -> 二進制流 buf3 = 'Hello World' bin_buf3 = struct.pack('11s', buf3) # '11s'代表長度為11的'string'字符數組 ret3 = struct.unpack('11s', bin_buf3) print bin_buf3, ' <====> ', ret3 # 結構體 -> 二進制流 # 假設有一個結構體 # struct header { # int buf1; # double buf2; # char buf3[11]; # } bin_buf_all = struct.pack('id11s', buf1, buf2, buf3) ret_all = struct.unpack('id11s', bin_buf_all) print bin_buf_all, ' <====> ', ret_all

輸出結果如下:


demo1輸出結果

詳解struct模塊

主要函數

struct模塊中最重要的三個函數是pack() , unpack() , calcsize()

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

struct中的格式化字符串

struct中支持的格式如下表:

Format C Type Python 字節數
x pad byte no value 1
c char string of length 1 1
b signed char integer 1
B unsigned char integer 1
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合影院在线| 丝袜亚洲欧美日韩综合| 久久国产精品久久久久久久久久| 成人av番号网| 国外色69视频在线观看| 国产成人综合精品| 国产v综合ⅴ日韩v欧美大片| 成人精品一区二区三区电影黑人| 亚洲国产精品成人av| 欧美视频在线视频| 久久人体大胆视频| 国产成人久久久| 亚洲黄色免费三级| 国产香蕉精品视频一区二区三区| 91精品久久久久久| 欧美老少做受xxxx高潮| 欧美疯狂做受xxxx高潮| 亚洲欧美中文另类| 最新69国产成人精品视频免费| 日韩精品极品视频免费观看| 美女视频黄免费的亚洲男人天堂| 日韩亚洲国产中文字幕| 久久影视电视剧凤归四时歌| 日韩成人中文字幕| 成人性生交xxxxx网站| 精品成人在线视频| 国产午夜精品一区二区三区| 亚洲福利小视频| 欧美大片免费看| 欧美色视频日本版| 国产精品亚洲网站| xxx欧美精品| 欧美高清视频一区二区| 久久精品国产亚洲精品2020| 最近2019免费中文字幕视频三| 日韩成人av在线播放| 国产精品久久久999| 日韩欧美在线一区| 日韩欧美主播在线| 欧美激情aaaa| 国产精品美乳一区二区免费| 欧美在线www| 欧美色播在线播放| 亚洲一品av免费观看| 国产91ⅴ在线精品免费观看| 欧美激情免费在线| 日韩av在线电影网| 国产精品久久久久久久久久久久| www国产精品视频| 亚洲xxxx做受欧美| 精品亚洲夜色av98在线观看| 国产精品美女久久久久久免费| 久久久久久久久国产精品| 亚洲伊人第一页| 欧美大片网站在线观看| 91亚洲国产精品| 精品一区二区电影| 日本道色综合久久影院| 亚洲欧美国产另类| 91嫩草在线视频| 亚洲尤物视频网| 国产色视频一区| 国产精品视频地址| 亚洲精品91美女久久久久久久| 久久伊人精品天天| 久久躁狠狠躁夜夜爽| 欧美激情精品久久久久久久变态| 欧美放荡办公室videos4k| 日韩电影中文字幕一区| 久久精品国产久精国产思思| 成人黄色免费看| 日韩欧美成人免费视频| 欧美网站在线观看| 国产日韩换脸av一区在线观看| 91免费综合在线| 亚洲午夜精品久久久久久性色| 性欧美在线看片a免费观看| 国产女人18毛片水18精品| 91久久夜色精品国产网站| 国产精品久久久久久久久免费| 国产一区二区黑人欧美xxxx| 国产午夜精品视频免费不卡69堂| 美女久久久久久久久久久| 国产精品视频26uuu| 日韩在线视频线视频免费网站| 午夜美女久久久久爽久久| 欧美精品久久久久a| 国产丝袜一区二区三区免费视频| 国产精品视频成人| 欧美性极品xxxx做受| 狠狠躁夜夜躁人人爽天天天天97| 九九九热精品免费视频观看网站| 亚洲视频一区二区三区| 亚洲最大福利视频网站| 亚洲韩国欧洲国产日产av| 热门国产精品亚洲第一区在线| 国产男人精品视频| 一本一道久久a久久精品逆3p| 欧美日韩国产第一页| 亚洲一区二区免费在线| 69久久夜色精品国产69乱青草| 日韩专区在线播放| 欧美美女15p| 亚洲专区国产精品| 午夜精品久久久久久久99黑人| 国产精品免费久久久久久| 欧美视频裸体精品| 欧美激情va永久在线播放| 色婷婷亚洲mv天堂mv在影片| 国产精品美女免费视频| 欧美xxxx做受欧美| 欧美在线播放视频| 日韩免费观看在线观看| 在线日韩精品视频| 色狠狠av一区二区三区香蕉蜜桃| 久久久久久久久久久免费精品| 亚洲第一页在线| 久久久久久久久久婷婷| 亚洲最新中文字幕| 欧美日韩激情小视频| 欧美特黄级在线| 亚洲综合在线中文字幕| 日日狠狠久久偷偷四色综合免费| 欧美日韩国产丝袜另类| 91sao在线观看国产| 欧美激情性做爰免费视频| 尤物tv国产一区| 日本免费在线精品| 亚洲午夜女主播在线直播| 91视频九色网站| 91久久久久久久| 亚洲午夜av电影| 欧美精品免费在线观看| 欧美体内谢she精2性欧美| 久久精品视频在线观看| 永久免费精品影视网站| 国产亚洲精品高潮| 色诱女教师一区二区三区| 国产精品久久久久久影视| 精品国偷自产在线视频| 成人激情视频免费在线| 欧美中文字幕在线播放| 亚洲片在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美成人午夜激情视频| 国产精品视频精品视频| 日本道色综合久久影院| 欧美一级高清免费播放| 成人午夜高潮视频| 欧美一级黑人aaaaaaa做受| 国产精品久久久久久久久粉嫩av| 国产精品成久久久久三级| 欧美多人乱p欧美4p久久| 欧美视频国产精品| 久久九九精品99国产精品| 亚洲成年网站在线观看| 成人精品网站在线观看| 国产成人97精品免费看片| 久久中国妇女中文字幕| 精品国产一区二区三区在线观看| 91在线精品播放| 日韩电影中文字幕一区| 成人午夜黄色影院| 欧美成人激情在线|