python鐨剆truct鎬庝箞浣跨敤
鍦≒ython涓紝struct妯″潡鐢ㄤ簬澶勭悊C缁撴瀯浣撶殑鎵撳寘鍜岃В鍖呮搷浣溿€傚畠鎻愪緵浜嗕竴浜涘嚱鏁版潵澶勭悊浜岃繘鍒舵暟鎹拰Python涓殑瀛楃涓蹭箣闂寸殑杞崲銆?/p>
涓嬮潰鏄竴浜涘父鐢ㄧ殑struct妯″潡鍑芥暟鐨勭敤娉曪細
- 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@'
- 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)
- calcsize(format)锛氳绠楁寚瀹氭牸寮忕殑缁撴瀯浣撶殑澶у皬锛岃繑鍥炲瓧鑺傛暟銆?/li>
import struct
# 璁$畻缁撴瀯浣撶殑澶у皬
size = struct.calcsize('i f')
print(size) # 8
- 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>
相关问答