- 論壇徽章:
- 0
|
python代碼
pack/unpack 的摸板字符字符 含義a 一個(gè)填充空的字節(jié)串 A 一個(gè)填充空格的字節(jié)串 b 一個(gè)位串,在每個(gè)字節(jié)里位的順序都是升序 B 一個(gè)位串,在每個(gè)字節(jié)里位的順序都是降序 c 一個(gè)有符號(hào) char(8位整數(shù))值 C 一個(gè)無(wú)符號(hào) char(8位整數(shù))值;關(guān)于 Unicode 參閱 U d 本機(jī)格式的雙精度浮點(diǎn)數(shù) f 本機(jī)格式的單精度浮點(diǎn)數(shù) h 一個(gè)十六進(jìn)制串,低四位在前 H 一個(gè)十六進(jìn)制串,高四位在前 i 一個(gè)有符號(hào)整數(shù)值,本機(jī)格式 I 一個(gè)無(wú)符號(hào)整數(shù)值,本機(jī)格式 l 一個(gè)有符號(hào)長(zhǎng)整形,總是 32 位 L 一個(gè)無(wú)符號(hào)長(zhǎng)整形,總是 32 位 n 一個(gè) 16位短整形,“網(wǎng)絡(luò)”字節(jié)序(大頭在前) N 一個(gè) 32 位短整形,“網(wǎng)絡(luò)”字節(jié)序(大頭在前) p 一個(gè)指向空結(jié)尾的字串的指針 P 一個(gè)指向定長(zhǎng)字串的指針 q 一個(gè)有符號(hào)四倍(64位整數(shù))值 Q 一個(gè)無(wú)符號(hào)四倍(64位整數(shù))值 s 一個(gè)有符號(hào)短整數(shù)值,總是 16 位 S 一個(gè)無(wú)符號(hào)短整數(shù)值,總是 16 位,字節(jié)序跟機(jī)器芯片有關(guān) u 一個(gè)無(wú)編碼的字串 U 一個(gè) Unicode 字符數(shù)字 v 一個(gè)“VAX”字節(jié)序(小頭在前)的 16 位短整數(shù) V 一個(gè)“VAX”字節(jié)序(小頭在前)的 32 位短整數(shù) w 一個(gè) BER 壓縮的整數(shù) x 一個(gè)空字節(jié)(向前忽略一個(gè)字節(jié)) X 備份一個(gè)字節(jié) Z 一個(gè)空結(jié)束的(和空填充的)字節(jié)串 @ 用空字節(jié)填充絕對(duì)位置
每個(gè)字母前面都可以跟著一個(gè)數(shù)字,表示 count(計(jì)數(shù)),解釋成某種形式的重復(fù)計(jì)數(shù)或者長(zhǎng)度,具體情況取決于格式。
character byte order@ native= native> big-endian! network=(big-endian)
下面是一些使用的例子,具體的使用,可以參考這些例子:1. 設(shè)置fomat格式,如下: # 取前5個(gè)字符,跳過(guò)4個(gè)字符華,再取3個(gè)字符 format = '5s 4x 3s'2. 使用struck.unpack獲取子字符串 [color="#FF0102"]import struct print struct.unpack(format, 'Test astring') #('Test', 'ing') 來(lái)個(gè)簡(jiǎn)單的例子吧,有一個(gè)字符串'He is not very happy',處理一下,把中間的not去掉,然后再輸出。 import struct theString = 'He is not very happy' format = '2s 1x 2s 5x 4s 1x 5s' print ' '.join(struct.unpack(format, theString)) 輸出結(jié)果: He is very happy
3.import structk = '1234'f = struct.unpack('L', k)輸出結(jié)果:(875770417,) #/0x34333231 ASCII的4321 默認(rèn)小端法
f = struct.unpack('>L', k) 輸出結(jié)果:(825373492,) #/0x31323334 ASCII的1234 大端法
f = struct.unpack('BBBB', k) 輸出結(jié)果:(49,50,51,52) #/ ASCII的1234
k = '12345'f = struct.unpack('LB', k) 輸出結(jié)果:(875770417,53) #/0x34333231 ASCII的1234 外加十進(jìn)制53即ASCII的5
k = '12345'f = struct.unpack('5B', k) 輸出結(jié)果:(49,50,51,52,53) #/ ASCII的12345
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u3/103763/showart_2113719.html |
|