struct與subprocess 模塊

struct模塊

pack

用於將Python的值根據格式符,轉換爲字符串(由於Python中沒有字節(Byte)類型,能夠把這裏的字符串理解爲字節流,或字節數組)。其函數原型爲:struct.pack(fmt, v1, v2, …),參數fmt是格式字符串,v1, v2, …表示要轉換的python值。python

res = struct.pack("i", 45)
print(res, len(res))
運行結果:
b'-\x00\x00\x00' 4
格式符 C語言類型 Python類型  
x pad byte no value  
c char string of length 1  
b signed char integer  
B unsigned char integer  
? _Bool bool  
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  
Q unsigned long long long  
f float float  
d double float  
s char[] string  
p char[] string  
P void * long

 

unpack

unpack作的工做恰好與struct.pack相反,用於將字節流轉換成python數據類型。它的函數原型爲:struct.unpack(fmt, string),該函數返回一個元組shell

obj = struct.unpack("i", res)
print(obj[0])
運行結果:
45

calcsize

用於計算格式字符串所對應的結果的長度,如:struct.calcsize(‘ii’),返回8。由於兩個int類型所佔用的長度是8個字節。數組

 subprocess

用於經過python執行shell命令函數

Popen

res = subprocess.Popen("dir",
                       shell=True,
                       stderr=subprocess.PIPE,
                       stdout=subprocess.PIPE
                       )
print(res.stderr.read().decode("gbk"))
print(res.stdout.read().decode("gbk"))
相關文章
相關標籤/搜索