扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

python鐨剆truct鎬庝箞浣跨敤

扬州沐宇科技
2023-12-08 13:21:35
python

鍦≒ython涓紝struct妯″潡鐢ㄤ簬澶勭悊C缁撴瀯浣撶殑鎵撳寘鍜岃В鍖呮搷浣溿€傚畠鎻愪緵浜嗕竴浜涘嚱鏁版潵澶勭悊浜岃繘鍒舵暟鎹拰Python涓殑瀛楃涓蹭箣闂寸殑杞崲銆?/p>

涓嬮潰鏄竴浜涘父鐢ㄧ殑struct妯″潡鍑芥暟鐨勭敤娉曪細

  1. pack(format, v1, v2, 鈥?锛氬皢鏁版嵁鎸夌収鎸囧畾鐨勬牸寮忚繘琛屾墦鍖呫€俧ormat鏄牸寮忓瓧绗︿覆锛岀敤浜庢寚瀹氭瘡涓€肩殑绫诲瀷鍜岄『搴忋€倂1, v2, 鈥︽槸瑕佹墦鍖呯殑鍊笺€?/li>
import struct

# 灏嗘暣鏁板拰娴偣鏁版墦鍖呬负浜岃繘鍒舵暟鎹?/span>
data = struct.pack('i f', 10, 3.14)
print(data)  # b'\n\x00\x00\x00\x0b\x86\x1f@'
  1. unpack(format, buffer)锛氬皢浜岃繘鍒舵暟鎹寜鐓ф寚瀹氱殑鏍煎紡杩涜瑙e寘銆俧ormat鏄牸寮忓瓧绗︿覆锛岀敤浜庢寚瀹氭瘡涓€肩殑绫诲瀷鍜岄『搴忋€俠uffer鏄瑙e寘鐨勪簩杩涘埗鏁版嵁銆?/li>
import struct

# 浠庝簩杩涘埗鏁版嵁涓В鍖呮暣鏁板拰娴偣鏁?/span>
data = b'\n\x00\x00\x00\x0b\x86\x1f@'
values = struct.unpack('i f', data)
print(values)  # (10, 3.140000104904175)
  1. calcsize(format)锛氳绠楁寚瀹氭牸寮忕殑缁撴瀯浣撶殑澶у皬锛岃繑鍥炲瓧鑺傛暟銆?/li>
import struct

# 璁$畻缁撴瀯浣撶殑澶у皬
size = struct.calcsize('i f')
print(size)  # 8
  1. iter_unpack(format, buffer)锛氳凯浠hВ鍖呮寚瀹氭牸寮忕殑浜岃繘鍒舵暟鎹€傝繑鍥炰竴涓凯浠e櫒锛屾瘡娆¤繑鍥炰竴涓В鍖呭悗鐨勫厓缁勩€?/li>
import struct

# 杩唬瑙e寘浜岃繘鍒舵暟鎹?/span>
data = b'\n\x00\x00\x00\x0b\x86\x1f@\n\x00\x00\x00\x16\xc0\xb0@'
for values in struct.iter_unpack('i f', data):
    print(values)  # (10, 3.140000104904175), (22, 22.5)

杩欓噷鍙槸绠€鍗曚粙缁嶄簡struct妯″潡鐨勪竴浜涘父鐢ㄥ嚱鏁扮殑鐢ㄦ硶锛屼綘鍙互鏍规嵁瀹為檯闇€姹傛煡闃呭畼鏂规枃妗f潵浜嗚В鏇村璇︾粏鐨勭敤娉曞拰鏍煎紡瀛楃涓茬殑瑙勫垯銆?/p>

扫码添加客服微信