Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonバイナリデータサービス


Pythonライブラリの構造体モジュールのプロビジョニングは、Cタイプの構造体とPythonバイトオブジェクト間の変換を実行するのに役立ちます。これは、モジュールレベルの関数と、structモジュールで定義されているStructクラスとそのメソッドによって実現できます。

変換関数はフォーマット文字列を使用します。フォーマット文字列で使用されるバイト順序、サイズ、および配置は、次の表のように文字をフォーマットすることによって決定されます

ネイティブ
ネイティブ
ネイティブ
ネイティブ
標準
なし
リトルエンディアン
標準
なし
ビッグエンディアン
標準
なし
標準
なし
キャラクター
バイトオーダー
サイズ
配置
@
=
<
>

ネットワーク(=ビッグエンディアン)

次の表は、C型変数と対応するPython型を表すために使用されるフォーマット文字を示しています。

パッドバイト
値なし
長さ1のバイト
符号付き/符号なし文字
整数
ブール
短い/符号なしの短い
整数
整数
整数
フロート
フロート
ダブル
フロート
バイト
バイト
ボイド*
整数
フォーマット
Cタイプ
Pythonタイプ
x
c
char
b / B

_Bool
h / H
i / I
int / unsigned int
l / L
long / unsigned long
f
d
s
char []
p
char []
P

次の関数は構造体モジュールで定義されています

pack()

この関数は、フォーマット文字列フォーマットに従ってパックされた値を含むバイトオブジェクトを返します。書式設定文字は、書式設定に必要な値と一致する必要があります。

unpack()

この関数は、フォーマット文字列フォーマットに従ってバッファからアンパックします。結果は、アイテムが1つだけ含まれている場合でもタプルになります。

次のコードは、これらの関数の使用法を示しています。

import struct
student=(1, b'Rahul', 65.75)
packed=struct.pack('I 5s f', *student)
print ('packed data:',packed)

unpacked=struct.unpack('I 5s f', packed)
print ('unpacked data:',unpacked)

出力

packed data: b'\x01\x00\x00\x00Rahul\x00\x00\x00\x00\x80\x83B'
unpacked data: (1, b'Rahul', 65.75)

パッキング/アンパッキングは、Structクラスのメソッドを使用して実行することもできます。 Structオブジェクトを一度作成してそのメソッドを呼び出す方が、同じ形式でstruct関数を呼び出すよりも効率的です。これは、フォーマット文字列を1回コンパイルするだけでよいためです。

構造体(フォーマット)

このコンストラクターは、フォーマット文字列フォーマットに従ってバイナリデータを読み書きする新しいStructオブジェクトを返します。

pack()

このメソッドは、コンパイルされた形式を使用するpack()関数と同じです。

unpack()

このメソッドは、コンパイルされた形式を使用するunpack()関数と同じです。

次の例は、Structクラスを使用してPythonデータをパックおよびアンパックする方法を示しています。

s = struct.Struct('I 5s f')
packed=s.pack(*student)
print (packed)
unpacked = s.unpack(packed)
print (unpacked)

パックされたデータは、名前付きタプルオブジェクトに直接解析できます。

from collections import namedtuple
newstudent = namedtuple('newstudent','No Name Marks')
s1 = newstudent._make(struct.unpack('I 5s f', packed))
print (s1)

出力

newstudent(No=1, Name=b'Rahul', Marks=65.75)

  1. Pythonでの統計的思考

    統計は、mlとAIを学ぶための基本です。 Pythonはこれらのテクノロジーに最適な言語であるため、統計分析を組み込んだPythonプログラムの作成方法を説明します。この記事では、さまざまなPythonモジュールを使用してグラフやチャートを作成する方法を説明します。このさまざまなグラフは、データをすばやく分析し、内部を導き出すのに役立ちます。 データの準備 さまざまなシードに関するデータを含むデータセットを取得します。このデータセットは、以下のプログラムに示されているリンクのkaggleで入手できます。さまざまなシードの特徴を比較するためのさまざまなタイプのチャートを作成するために使用される

  2. Pythonで国勢調査データを分析する

    国勢調査とは、特定の人口に関する情報を体系的に記録することです。キャプチャされたデータには、人口統計、経済、居住の詳細など、さまざまなカテゴリの情報が含まれます。これは、最終的に政府が現在のシナリオと将来の計画を理解するのに役立ちます。この記事では、Pythonを活用してインドの人口の人口調査データを分析する方法を説明します。さまざまな人口統計学的および経済的側面を見ていきます。次に、分析をグラフィカルに投影する電荷をプロットします。 kaggleから収集されたソース。ここにあります。 データの整理 以下のプログラムでは、最初に短いPythonプログラムを使用してデータを取得します。さらに分