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

資訊專欄INFORMATION COLUMN

Python的Struct模塊,用法以及個(gè)人理解

Elle / 3487人閱讀

摘要:簡介模塊主要在中的值于語言結(jié)構(gòu)之間的轉(zhuǎn)換。可用于處理存儲(chǔ)在文件或網(wǎng)絡(luò)連接或其它來源中的二進(jìn)制數(shù)據(jù)。順序格式字符現(xiàn)在先不要看圖表,稍后我們回來看。圖片來自官網(wǎng)例子用例子說明效果是最好的,我們用特定格式往二進(jìn)制文件里寫入數(shù)據(jù),然后再讀出數(shù)據(jù)。

簡介

python strtuct模塊主要在Python中的值于C語言結(jié)構(gòu)之間的轉(zhuǎn)換。可用于處理存儲(chǔ)在文件或網(wǎng)絡(luò)連接(或其它來源)中的二進(jìn)制數(shù)據(jù)。

順序、格式字符

現(xiàn)在先不要看圖表,稍后我們回來看。圖片來自Python官網(wǎng)

例子

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

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

import struct

"""
數(shù)據(jù)格式
名字  職業(yè)   年
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)
上述代碼的含義就是,以二進(jìn)制格式打開一個(gè)文件,以指定格式寫入一個(gè)二進(jìn)制串,再從文件取出二進(jìn)制串,再把取出的串翻譯成python數(shù)據(jù)
struct 最常用的方法有兩個(gè):
struct.pack(fmt,v1,v2,…) 
返回的是一個(gè)字符串,是參數(shù)按照fmt數(shù)據(jù)格式組合而成

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


兩個(gè)方法的第一個(gè)參數(shù)都是fmtfmt就是上面的兩個(gè)表格,我們根據(jù)實(shí)際內(nèi)容(具體需求)寫出fmt串,讀取或?qū)懭胛募?/p>

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

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

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

拓展

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

感謝

學(xué)習(xí)Python主要在:廖雪峰的官方網(wǎng)站、菜鳥教程這兩個(gè)網(wǎng)站學(xué)習(xí),很感謝他們!

也很感謝其他樂于分享貢獻(xiàn)知識(shí)經(jīng)驗(yàn)的人,謝謝

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/44656.html

相關(guān)文章

  • Python格式化時(shí)間

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

    Cc_2011 評論0 收藏0
  • Python 調(diào)用 C 動(dòng)態(tài)鏈接庫,包括結(jié)構(gòu)體參數(shù)、回調(diào)函數(shù)等

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

    NickZhou 評論0 收藏0
  • python大佬養(yǎng)成計(jì)劃----os,datetime,time模塊補(bǔ)充

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

    frank_fun 評論0 收藏0
  • 我是如何入門機(jī)器學(xué)習(xí)

    摘要:在這里我分享下我個(gè)人入門機(jī)器學(xué)習(xí)的經(jīng)歷,希望能對大家能有所幫助。相關(guān)學(xué)習(xí)鏈接,,入門后的體驗(yàn)在入門了機(jī)器學(xué)習(xí)之后,在實(shí)際工作中,絕大多數(shù)的情況下你并不需要去創(chuàng)造一個(gè)新的算法。 機(jī)器學(xué)習(xí)在很多眼里就是香餑餑,因?yàn)闄C(jī)器學(xué)習(xí)相關(guān)的崗位在當(dāng)前市場待遇不錯(cuò),但同時(shí)機(jī)器學(xué)習(xí)在很多人面前又是一座大山,因?yàn)榘l(fā)現(xiàn)它太難學(xué)了。在這里我分享下我個(gè)人入門機(jī)器學(xué)習(xí)的經(jīng)歷,希望能對大家能有所幫助。 PS:這篇文章...

    ShowerSun 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<