Python は、C/C および Python データ形式を変換するために、ファイルのバイナリ データを読み書きするために struct モジュールを使用する必要があります。
struct モジュールで最も一般的に使用される関数は、pack と unpack です。使用方法は次のとおりです:
関数 | return | explain |
---|---|---|
pack(fmt,v1,v2…) | # #string指定された形式 (fmt) に従ってデータを文字列 (バイト ストリーム) に変換し、文字列を返します。 | |
None | 指定された形式 (fmt) に従ってデータを文字列 (バイト ストリーム) に変換し、オフセットから始まるバイト ストリームをバッファに書き込みます. (buffer は書き込み可能なバッファであり、配列モジュールが使用できます) | |
tuple | 指定された形式 (fmt) に従ってバイト ストリームを解析し、解析結果を返します | ##pack_from(fmt,buffer,offset) |
指定された形式 (fmt) に従ってオフセットで始まるバッファを解析し、解析結果を返します | #calcsize(fmt) | #fmt のサイズ |
3. struct モジュールのデータ形式 fmt は C/C に対応しますと Python の入力 |
標準サイズ | xx | ||
---|---|---|---|
c |
char |
||
1 | b | signed char | |
1 | B | unsigned char | |
1 | ? | _Bool | |
1 | ##h | short | integer |
H | unsigned short | integer | |
i | int | integer | |
##I | unsigned int | integer | 4 |
l | long | integer | 4 |
L | 符号なしlong | 整数 | 4 |
q | long long | integer | 8 |
Q | unsignedlonglong | integer | 8 |
f | float | float | 4 |
d | double | float | 8 |
s | char[] | string | |
#p | char[] | string | |
P | void * | integer | |
##4.例 | 注意: コード内の d756bdadd944aebc5c2efbf633910343 はビッグ エンディアンを意味します | 5. Python 文字列の前に u、r、b、f を追加する意味 | 5.1 . 文字列の前に u | を追加すると、次の文字列が Unicode 形式でエンコードされます。ソース コードの保存形式の問題による再使用時の文字化けを防ぐために、通常は中国語の文字列の前に使用されます。
str= r'hello\n\t\n'
5.3 . 文字列の前に b
bytes = b'hello'
str.encode(‘utf-8') bytes.decode(‘utf-8')
5.4 です。文字列の前に f
name = 'Lily' print(f'My name is {name}.')
以上がPython を使用してバイナリ ファイルを読み書きする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。