この記事では主に、struct を使用してバイナリを処理する Python の詳細な例に関する関連情報を紹介します。この部分の内容を必要な方はこの記事を通じてマスターしていただければ幸いです。
Python の詳細な例。 struct を使用してバイナリを処理する
はい ファイルへのアクセスやソケット操作など、Python を使用してバイナリ データを処理する必要がある場合、Python の struct モジュールを使用して構造体の処理を完了できます。 C言語の
structモジュール 3つの最も重要な関数はpack()、unpack()、calcsize()です
pack(fmt, v1, v2, ...) データをパックします。指定された形式 (fmt) に従った文字列 (実際には、C 構造体に似たバイト ストリームです)
unpack(fmt, string) 指定された形式 (fmt) に従ってバイト ストリーム文字列を解析し、解析されたタプルを返します
calcsize(fmt ) 指定された形式 (fmt) が占めるメモリのバイト数を計算します
構造体でサポートされている形式は次のとおりです:
Format | C Type | Python | バイト数 |
---|---|---|---|
x | パッドバイト | 値なし | 1 |
c | char | 長さ1の文字列 | 1 |
b | 署名付き文字 | integer | 1 |
B | unsigned char | integer | 1 |
? | _Bool | bool | 1 |
h | short | int eger | 2 |
H | unsigned short | integer | 2 |
i | int | integer | 4 |
I | unsigned int | 整数または長整数 | 4 |
l | long | integer | 4 |
H ed long long | long | 8 | |
float | float | 4 | |
double | float | 8 | |
char[] | string | 1 | p |
string | 1 | P | |
長い | |||
注 2. 各形式は、数値を表す数字がある前に使用できます | 注 3. s 形式は、a の文字列を表します特定の長さ、4s は長さ 4 の文字列を表しますが、p はパスカル文字列を表します注 4.P はポインタを変換するために使用され、その長さはマシン語の長さに関連します | 注 5。最後のものは次の目的で使用できます。 4 バイトを占めるポインター型を表しますC の構造体とデータを交換するには、一部の C または C++ コンパイラーがワードを使用することも考慮する必要があります セクションのアライメントは、通常 32 ビット システムでは 4 バイトであるため、構造体はローカル マシンのバイト オーダーに従って変換されます。フォーマットの最初の文字を使用してアライメントを変更できます。定義は次のとおりです。 | |
サイズとアライメント | 。 |
native 4バイトを構成
=
standard 元のバイト数に従って
& gt; | ||
---|---|---|
! | ネットワーク (= ビッグエンディアン) | |
元のバイト数に基づく |
以上がPythonのstructを使ってバイナリデータを処理する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。