Python 處理位元組

2021-05-21 21:47:27 字數 928 閱讀 6859

我們知道python只定義了6種資料型別,字串,整數,浮點數,列表,元組,字典。但是c語言中有些位元組型的變數,在python中該如何實現呢?這點頗為重要,特別是要在網路上進行資料傳輸的話。

struct.pack():

struct.pack用於將python的值根據格式符,轉換為字串(因為python中沒有位元組(byte)型別,可以把這裡的字串理解為位元組流,或位元組陣列)。其函式原型為:struct.pack(fmt, v1, v2, ...)

,引數fmt是格式字串,關於格式字串的相關資訊下面

有所介紹。v1, v2, ...表示要轉換的python值。下面的例子將兩個整數轉換為字串(位元組流):

#其中十六進製制的 0x00000014, 0x00000190分別表示20和400

>>>

format = "!hh%ds" % len(data)

buffer = struct.pack(format,opcode,blocknumber,data)

struct.unpack():

>>> a1,a2=struct.unpack('ii',str)

>>> print 'a1',a1

a1 20

>>> print 'a2=',a2

a2= 400

可以看到 「ii」以四個位元組為分界,把8個位元組的str分成了兩個int型的整數。

struct.calcsize():用來計算特定格式的輸出的大小,是幾個位元組,比如:

>>> struct.calcsize('hh4s')

8>>> struct.calcsize('ii')

8>>>

>>> format='!hh%ds' % len('hello python')

>>> struct.calcsize(format)

16>>>

python位元組碼 Python位元組碼簡介

python位元組碼 如果您曾經編寫過python,或者甚至只是使用過python,那麼您可能已經習慣了檢視python源 檔案。它們的名稱以.py結尾。而且您可能還看到了另一種型別的檔案,其名稱以.pyc結尾,並且您可能已經聽說它們是python的 位元組碼 檔案。這些在python 3上很難看到...

位元組對齊的處理

1.資料型別自身的對齊值 就是上面交代的基本資料型別的自身對齊值。2.指定對齊值 progma pack value 時的指定對齊值value。3.結構體或者類的自身對齊值 其成員中自身對齊值最大的那個值。4.資料成員 結構體和類的有效對齊值 自身對齊值和指定對齊值中小的那個值。有了這些值,我們就可...

位元組序處理函式

首先在msdn上查詢htons htonl ntohl ntohs幾個函式的說明介紹,它們是用來轉換本地計算機和網路計算機位元組序的 那麼,它們一定可以用來出來位元組序問題 拋開網路流不談 上述的 htons 中的 h 是host主機端,n 是network網路端。網路傳輸是使用大端位元組序的 先傳...