使用struct的pack和unpack進行位元據的讀寫

來源:互聯網
上載者:User

直接看例子吧。

<br />import struct<br />v = 123<br />d = 456.123<br />url = "http://www.xxx.cn"<br />base = "nothing"<br />f = open("protocol.bin", "wb")<br />fmt = "ifi%dsi%ds" % ( len(url), len(base) ) # 如何使用對應關係,請查看python的struct協助文檔<br />bytes = struct.pack(fmt, v, d, len(url), url, len(base), base) # 在字串前,多加4位元組,表示後面字串的長度<br />f.write(bytes)<br />f.close()</p><p>f = open("protocol.bin", "rb")<br />v = f.read(4)<br />v = struct.unpack("i", v)[0]<br />print v<br />d = f.read(4)<br />d = struct.unpack("f", d)[0]<br />print d<br />sl = f.read(4)<br />sl = struct.unpack("i", sl)[0] # 讀取第一個字串的長度<br />url = f.read(sl)<br />print url<br />sl = f.read(4)<br />sl = struct.unpack("i", sl)[0]<br />base = f.read(sl)<br />print base<br />f.close() 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.