国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python的Struct模塊,用法以及個人理解

Elle / 3500人閱讀

摘要:簡介模塊主要在中的值于語言結構之間的轉換??捎糜谔幚泶鎯υ谖募蚓W絡連接或其它來源中的二進制數據。順序格式字符現在先不要看圖表,稍后我們回來看。圖片來自官網例子用例子說明效果是最好的,我們用特定格式往二進制文件里寫入數據,然后再讀出數據。

簡介

python strtuct模塊主要在Python中的值于C語言結構之間的轉換。可用于處理存儲在文件或網絡連接(或其它來源)中的二進制數據。

順序、格式字符

現在先不要看圖表,稍后我們回來看。圖片來自Python官網

例子

用例子說明效果是最好的,我們用特定格式往二進制文件里寫入數據,然后再讀出數據。

#! usr/bin/env python3
# -*- conding:utf-8 -*-

import struct

"""
數據格式
名字  職業   年
muyu  coder 2018
"""

name = b"muyu"
job = b"coder"
year = 2018


file = open(r"C:UsersmatzohDesktop	est.bin", "rb+")

file.write(struct.pack("4s5si", name, job, year))
file.flush()

file.seek(0)

strBin = file.read()
print(strBin) # b"muyucoderx00x00x00xe2x07x00x00"

content = struct.unpack("4s5si", strBin)
print(content) # (b"muyu", b"coder", 2018)
上述代碼的含義就是,以二進制格式打開一個文件,以指定格式寫入一個二進制串,再從文件取出二進制串,再把取出的串翻譯成python數據
struct 最常用的方法有兩個:
struct.pack(fmt,v1,v2,…) 
返回的是一個字符串,是參數按照fmt數據格式組合而成

struct.unpack(fmt,string)
按照給定數據格式解開(通常都是由struct.pack進行打包)數據,返回值是一個tuple


兩個方法的第一個參數都是fmt,fmt就是上面的兩個表格,我們根據實際內容(具體需求)寫出fmt串,讀取或寫入文件

文中我們的fmt串是4s5si,具體含義對照上面表格:

4s表示4字節的字符串(可能我們會遇到整數計數,例如5h,意思是5個相同的h,意思和4s并不一樣) 
5s含義同4s i表示整數(有符號)
具體解釋官方文檔也有
上述代碼運行結果:
b"muyucoderx00x00x00xe2x07x00x00"
(b"muyu", b"coder", 2018)

記錄自己的學習筆記,好記性不如爛筆頭(而且還不是好記性...)

拓展

看完本篇文章,有興趣的可以看:struct(廖雪峰)這篇文章,文章講怎么從bmp文件中讀取內容

感謝

學習Python主要在:廖雪峰的官方網站、菜鳥教程這兩個網站學習,很感謝他們!

也很感謝其他樂于分享貢獻知識經驗的人,謝謝

原文在自己的小博客:木魚博客

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/44656.html

相關文章

  • Python格式化時間

    摘要:如我們有字符串,如何將它轉換為對象呢的用法的作用是格式化時間格式,使其按照我們想要的格式來顯示。如下例,先將字符串解析為對象,然后在格式化時間輸出,將其輸出按照的格式輸出。 datetime簡介 datetime和time的區別 time在 Python 文檔里,time是歸類在Generic Operating System Services中,換句話說, 它提供的功能是更加接近于操...

    Cc_2011 評論0 收藏0
  • Python 調用 C 動態鏈接庫,包括結構體參數、回調函數等

    摘要:調用以回調函數地址為參數的函數這個主題就稍微繞一些了,也就是說在接口中,需要傳入回調函數作為參數。這個問題在中也可以解決,并且回調函數可以用定義。代碼代碼很簡單回調函數的傳入參數為,返回參數也是。 項目中要對一個用 C 編寫的 .so 庫進行邏輯自測。這項工作,考慮到靈活性,我首先考慮用 Python 來完成。 研究了一些資料,采用 python 的 ctypes 來完成這項工作。已經...

    NickZhou 評論0 收藏0
  • python大佬養成計劃----os,datetime,time模塊補充

    摘要:是否則檢驗指定的對象是否存在。由于的模塊實現主要調用庫,所以各個平臺可能有所不同。時間格式時間戳的方式通常來說,時間戳是指格林威治時間年月日時分秒北京時間年月日時分秒起至現在的總秒數。元組方式元組共有個元素,返回的函數主要有,,。 os模塊 os模塊提供了多數操作系統的功能接口函數。當os模塊被導入后,它會自適應于不同的操作系統平臺,根據不同的平臺進行相應的操作,在python編程時,...

    frank_fun 評論0 收藏0
  • 我是如何入門機器學習

    摘要:在這里我分享下我個人入門機器學習的經歷,希望能對大家能有所幫助。相關學習鏈接,,入門后的體驗在入門了機器學習之后,在實際工作中,絕大多數的情況下你并不需要去創造一個新的算法。 機器學習在很多眼里就是香餑餑,因為機器學習相關的崗位在當前市場待遇不錯,但同時機器學習在很多人面前又是一座大山,因為發現它太難學了。在這里我分享下我個人入門機器學習的經歷,希望能對大家能有所幫助。 PS:這篇文章...

    ShowerSun 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<