Python的struct模組
struct模組提供將二進位制資料轉換為結構化資料或相反的功能,它定義了以下函式和異常:
- exception struct.error
- struct.pack(fmt, v1, v2, …)
- 返回一個string,string由v1,v2…經過給出的格式fmt組成,引數的個數有和型別要和給出的格式一一對應
- struct.pack_into(fmt, buffer, offset, v1, v2, …)
- 按照格式fmt將v1, v2 …打包,並從buffer的偏移量offset開始寫進buffer中
- struct.unpack(fmt, string)
- 以給定的格式fmt來將string解包,結果是個元組(tuple),即使結果只有一個值。fmt
- 以給定的格式fmt來將string解包,結果是個元組(tuple),即使結果只有一個值。fmt
- struct.unpack_from(fmt, buffer[, offset=0])
- 以給定的格式fmt來將buffer解包,結果是個元組
- struct.calcsize(fmt)
- 返回給出格式對應的結構的長度
格式如下表:
C Type列指Foramt列字母所代表的打包資料
Python列指打包資料在python裡面表示的型別
Format | C Type | Python | Notes |
---|---|---|---|
x | pad byte | no value | |
c | char | string of length 1 | |
b | signed char | integer | |
B | unsigned |
integer | |
? | _Bool | bool | (1) |
h | short | integer | |
H | unsigned short | integer | |
i | int | integer | |
I | unsigned int | integer or long | |
l | long | integer | |
L | unsigned long | long | |
q | long long | long | (2) |
Q | unsigned long long | long | (2) |
f | float | float | |
d | double | float | |
s | char[] | string | |
p | char[] | string | |
P | void * | long |
說明:
- 格式字元可以以一個數字作為字首n,表示n個連續的該格式,例如4h表示hhhh
- 在格式(formats)中間的空白字元將被忽略
- s格式的計數n代表n個位元組長度的string,例如’10s’代表10-byte string
format的第一個字元可以標示為位元組序、對齊方式、資料型別大小等,如下表:
Character | Byte order | Size and alignment |
---|---|---|
@ | native | native |
= | native | standard |
< | little-endian | standard |
> | big-endian | standard |
! | network (= big-endian) | standard |
- 如果沒有第一個字元,則預設為@
- native byteorder表示位元組序取決於本機系統
- native size and alignment表示資料型別大小和對齊方式與c編譯器相關
- standard size and alignment表示不進行任何對齊,short為2位元組,int和long為4位元組,long long為8位元組,float和 double是32bit和64bit的IEEE的浮點數,_Bool為1位元組
轉帖自:http://www.fengyj.net/blog/?p=487
相關推薦
『TensorFlow』徒手裝高達_初號機_添加訓練模組並整合為可用分類網絡
正則 basename eth enum 結構 __name__ 第一個 sce 選擇 摘要: 本次整合了前面兩節的模組,並添加向前傳播&反饋訓練部分,使之成為一個包含訓練&驗證&測試的分類網絡。 文件架構: 代碼整合: image_info.py
最全的NB-IoT芯片廠商、模組廠商信息
節點 用處 公司 網絡 模塊 不用 b- 1.3 atp NB-IoT作為LPWAN(低功耗廣域網)的新興技術,因為具有低功耗、低成本、廣覆蓋、海量節點等優勢,並且在授權頻段可以與2G、3G無縫連接而被運營商所青睞且接受。特別是到了2017年,據統計全球有50多個運營商都在
Python 函數與常用模組 - 叠代器
doc 集合 process cal (()) bin back lis () 叠代器 我們已經知道可以直接作用於 for 循環的數據類型有以下幾種: 一類是集合數據類型: list 、 tuple 、 dict 、 set 、 str 、 bytes 等。 另一類是 g
Python 函數與常用模組 - 生成器
board lin 停止 叠代 pri mod expr ner next() 生成器 什麼是列表生成式? 這個是基本的列表 >>> a = [1, 2, 3] >>> a [1, 2, 3] 也可以用另一種方式來表示 >>&
iPhone X 的原深感模組
語音助手 中國科學院 .com 測量 生活 一個 科學研究 新興 更多 物理與數字世界正走向融合,我們每天醒來的時間、睡眠時長、心率和步數等數據都會被分享、上傳並轉化為分析數據。無處不自的 AI、互聯互通和軟件平臺將改變用戶對現實的感知。 2018 年的 CES
嵌入掃描模組共享雨傘為你我撐起一片天
早已 共享 有效 解決 內嵌 附近 ofo 二維 設置 下雨了,沒帶傘,只能在地鐵眼睜睜地等著雨停?為解決市民下雨天忘帶傘的問題,地鐵推出了共享單車應用,只需手機二維碼一刷便可借傘。近日,上海地鐵引進了共享雨傘設備。有效解決了下雨天人群堵塞地鐵的問題,也為市民提供了方便,不
python--random模組(產生隨機值)、洗牌、驗證碼應用
前言: 在python中用於生成隨機數的模組是random,在使用前需要import random.random():生成一個0-1之間的隨機浮點數. random.uniform(a, b):生成[a,b]之間的浮點數. random.randi
前端模組化-5分鐘快速入門RequireJs
各位開發專案的時候引用JS都會遇到以下的情景 產生AMD規範的背景 因為使用各種外掛,或者團隊協同合作,產生多個js檔案, 假如使用的JQ外掛,則必須先引用jquery庫才能夠正常執行, JS檔案之間強依賴關係,讓我們不敢動檔案的引入順序。 並且,在渲染頁面的過程中,同步讀取JS檔案會
《JAVA併發程式設計實戰》基礎構建模組
文章目錄 同步容器類 同步容器類的問題 迭代器和ConcurrentModificationException 隱藏迭代器 併發容器 ConcurrentHashMap 額外的原子Map操作
python-random模組詳解
0.摘要 本文主要介紹random模組的各種方法,並用python3做功能展示。 1.random.random() 產生一個位於[0,1)區間的隨機數。 random.random() #產生一個[0,1)的數 10 * random.random() #產生一個
叢集環境下module載入模組與作業提交
叢集上已安裝了軟體,卻無法呼叫,許可權不足的情況下,往往管理賬戶會開放一個埠,讓我能夠只用module命令來載入相關軟體。 module使用 管理賬戶modules的安裝 sudo yum install -y environment-modules mo
[Golang] 從零開始寫Socket Server(6)【完結】:日誌模組的設計與定時任務模組模組
好久沒寫文章啦。。。今天把golang挖的這個坑給補完吧~ 作為一個Server,日誌(Log)功能是必不可少的,一個設計良好的日誌模組,不論是開發Server時的除錯,還是執行時候的維護,都是非常有幫助的。 因為這裡寫的是一個比較簡化的Server框架,因此我選擇對Golang本
(轉)Python3之shutil模組
原文:https://www.cnblogs.com/wang-yc/p/5625046.html 一. 簡介 shutil 是高階的檔案,資料夾,壓縮包處理模組。 二. 使用 shutil.copyfileobj(fsrc, fdst[, length])將檔案內容拷貝到另一個檔
python的pyserial模組
pyserial是python提供用於進行串列埠通訊的庫 源文件:https://pythonhosted.org/pyserial/ 1、安裝pyserial pip install pyserial 2、檢視電腦現連串列埠裝置 import serial.tools.list_ports #檢
Python---OS模組常用命令
Python中對於檔案操作與處理的模組有:os模組和shutil模組。 os模組不僅提供了對目錄/檔案進行:新建、刪除、檢視等操作,還提供了對檔案以及目錄的路徑操作:絕對路徑、相對路徑等。 shutil模組相當於是對os進行的一個補充,對檔案進行:移動、複製、法寶、壓縮、解壓等操作 1、
android 藍芽模組Bluetooth 使用 十六進位制資料傳送
一個藍芽模組看起來很小,弄起來還是有點複雜的,從網上找了一個示例程式碼,http://blog.csdn.net/vnanyesheshou/article/details/51554852但是不能直接用,需要自己進行閱讀理解和修改後才能使用。 先貼一張自制的uml圖: 從圖中不難看出
python os模組對檔案的操作
返回作業系統型別 os.name 返回值為posix,是linux作業系統,返回值為nt,是windows系統 返回作業系統的詳細資訊 os.uname() 系統的環境變數 os.environ 判斷是否是絕對路徑 os.path.isabs 不會判斷檔案或
pyinstaller打包資原始檔及包含eyed3模組時提示找不到libmagic處理
這兩天用python寫了個小工具,用到了eyed3,用pyinstaller打包時提示找不到libmagic 版本資訊: python 3.6.5 pyInstaller 3.4 python-magic-bin 0.4.14 eyeD3 0.88 wxpython 4.0.3 eyeD3 在Win
python___docx模組
一,docx模組 Python可以利用python-docx模組處理word文件,處理方式是面向物件的。也就是說python-docx模組會把word文件,文件中的段落、文字、字型等都看做物件,對物件進行處理就是對word文件的內容處理。 二,相關概念 如果需要讀取word文件中的文字(一般來說,程式也
量化交易入門筆記-Datetime和Time模組
Python 中,通常有三種方式用來表示時間,分別是時間戳、格式化的字串、元組(struct_time)方式 時間戳 一般來講,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。可以運用"type(time.time())",返回的是 float 。