Python-data-persistence-marshal-module
Pythonデータの永続性-マーシャルモジュール
Pythonの標準ライブラリのマーシャルモジュールのオブジェクトシリアル化機能は、ピクルモジュールに似ています。 ただし、このモジュールは汎用データには使用されません。 一方、Python自体がPythonの内部オブジェクトのシリアル化に使用して、コンパイルされたバージョンのPythonモジュール(.pycファイル)での読み取り/書き込み操作をサポートします。
marshalモジュールが使用するデータ形式は、Pythonバージョン間で互換性がありません。 したがって、あるバージョンのコンパイル済みPythonスクリプト(.pycファイル)は、おそらく別のバージョンでは実行されません。
ピクルモジュールと同様に、マーシャルモジュールは、マーシャルされたオブジェクトを/からファイルに読み書きするためのload()およびdump()関数も定義しました。
投げ捨てる()
この関数は、サポートされているPythonオブジェクトのバイト表現をファイルに書き込みます。 ファイル自体が書き込み権限のあるバイナリファイルである
負荷()
この関数は、バイナリファイルからバイトデータを読み取り、それをPythonオブジェクトに変換します。
次の例は、dump()関数とload()関数を使用して、プリコンパイルされたPythonモジュールを格納するために使用されるPythonのコードオブジェクトを処理する方法を示しています。
コードは組み込みの* compile()*関数を使用して、Python命令を埋め込むソース文字列からコードオブジェクトを構築します。
fileパラメータは、コードの読み取り元のファイルである必要があります。 ファイルから読み取られなかった場合は、任意の文字列を渡します。
モードパラメータは、ソースに一連のステートメントが含まれている場合は「exec」、単一の式がある場合は「eval」、単一のインタラクティブステートメントが含まれている場合は「single」です。
コンパイルコードオブジェクトは、dump()関数を使用して.pycファイルに格納されます。
逆シリアル化するには、.pycファイルのオブジェクトでload()関数を使用します。 コードオブジェクトを返すため、別の組み込み関数であるexec()を使用して実行できます。