Back to Browse

読書実況 ▶︎ #44 The Python Tutorial — 11.3. Working with binary data record layouts

16 views
Streamed live on May 9, 2026
50:30

気になった本を読み進めていく、読書実況 — 以前にプログラミング言語 Python を触ってみたとき "独特でよくわからない" 感じがしたので、そんな苦手意識を打開するべく『The Pyton Tutorial』を読み進めていってみることにします。よろしくお願いしますね。 The Python Tutorial: https://docs.python.org/3/tutorial/ 各回の詳細情報: https://slime-caraway-717.notion.site/The-Python-Tutorial-2feda80f2c3b8180b655e81f5e371663?pvs=74 ■ ダイジェスト 技術書「The Python Tutorial」標準ライブラリ 第 2 部を読み進める読書実況の録画です。今回は次の技術的な話題に着目し、サンプルコードを追いながら学習しています。 - Working with Binary Data Record Layouts(バイナリレイアウト): モジュール `struct` の `pack`/`unpack` を確認し、`zipfile` を使わずに ZIP ファイルのローカルヘッダーを走査する例を読みました。`import struct`、`open(..., 'rb')`、`f.read()` で全体を読み、`start` を進めながら `struct.unpack` で `crc32`、`comp_size`、`uncomp_size`、`file_name_size`、`extra_size` を取り出し、ファイル名とエキストラ領域をスライスで取得する流れに注目。フォーマット文字 `H`(2 バイト)、`I`(4 バイト)や、エンディアン指定 `<`(リトル)/`>`(ビッグ)、例として `<IIIHH` を確認しました。 - マルチスレッディング: モジュール `threading` を用い、`threading.Thread` を継承した `AsyncZip` が `zipfile.ZipFile(..., 'w', zipfile.ZIP_DEFLATED)` でバックグラウンド処理を行い、メインスレッドは `start()` で開始し `join()` で待機する例を読みました。スレッドのコーディネーション課題と、`Lock`、`Event`、`Condition`、`Semaphore`、`Barrier`、およびスレッド間通信に `queue.Queue` を使う設計に言及しました。 - ロギング: モジュール `logging` の概要として、`DEBUG`/`INFO`/`WARNING`/`ERROR`/`CRITICAL` のレベル、標準エラー出力やファイル、各種ハンドラ(SMTP、UDP/TCP、HTTP)へのルーティング、コードまたは設定ファイルによるカスタマイズに触れました(`DEBUG`/`INFO` はデフォルト非表示)。 - メモリ管理と弱参照: Python の参照カウントとガーベジコレクションの併用、`weakref` により参照カウントを増やさずに追跡できる点、`weakref.WeakValueDictionary` の挙動や、強い参照がなくなると項目が消えること、`del` と `gc.collect()` を使った確認、コールバックの利用に触れました。 次回は 11.7「Tools for Working with Lists(リスト操作のためのツール)」に進みます。

Download

0 formats

No download links available.

読書実況 ▶︎ #44 The Python Tutorial — 11.3. Working with binary data record layouts | NatokHD