python模塊struct和subprocess

準確地講,Python沒有專門處理字節的數據類型。但因爲str既是字符串,又能夠表示字節,因此,字節數組=str。而在C語言中,咱們能夠很方便地用struct、union來處理字節,以及字節和int,float的轉換。shell

好在Python提供了一個struct模塊來解決str和其餘二進制數據類型的轉換。數組

structpack函數把整數類型變成字節:函數

import struct

res=struct.pack('i',16243422)
print(res)                  
print(len(res))

>>>
b'\xde\xda\xf7\x00'
4

'i' 表示4字節無符號整數, 'h' 表示2字節無符號整數(範圍:(-32768) <= number <= 32767)性能

struct的unpack函數把字節類型還原成整數:spa

 

import struct

res=struct.pack('i',16243422)

ret=struct.unpack('i',res)
print(ret[0])

>>>
16243422

 

因此,儘管Python不適合編寫底層操做字節流的代碼,但在對性能要求不高的地方,利用struct就方便多了。code

 

subprocess的popen用法:blog

 

import  subprocess

res=subprocess.Popen('dir',
                     shell=True,
                     stderr=subprocess.PIPE,
                     stdout=subprocess.PIPE)

print(res.stdout.read().decode('gbk'))   #打印當前文件下的目錄
print(res.stderr.read().decode('gbk'))  #文件名輸入錯誤,輸出錯誤
相關文章
相關標籤/搜索