【.pyc】現行のPythonバージョンのマジックナンバーを求める方法

Pythonにはバージョンごとに、8bit(1Byte)で構成されるバージョン情報が存在しています。
これらはマジックナンバーと呼ばれています

普段あまり気にする機会はないかもしれませんが、今日はこのマジックナンバーの調べ方を紹介します。とても簡単です。

確認したいバージョンのPythonを立ち上げ、

import importlib.util
importlib.util.MAGIC_NUMBER.hex()

と実行するだけです。

Python 3.7であれば

'420d0d0a'

Python 3.8であれば

'550d0d0a'

といった文字列が帰ってくるでしょう。
これがマジックナンバーになります。

適当な.pycファイルをバイナリエディタで開くと、先頭のヘッダにこれらが記述されていることが確認できます。(逆に言えば、調べたいPythonプログラムのバージョンのPythonを入れてなくとも、これらを開くことでマジックナンバーを確認出来ます)

↓詳しくはこちらの記事で解説してありますのでご覧ください。٩(๑❛ᴗ❛๑)

【Python3】Pyinstallerでexe化した.pyファイルをデコンパイルして中身を覗いてみる【uncompyle6】
はいどーも、まるです。最近、exe化したPythonファイルの中身を再編集しようとしたら、元のソースコードを見失ってしまい・・・。折角なのでデコンパイルして中身を取り出すことにしました。元の手順である.pyファイルのexe...

MagicNumberは普段なかなか意識して使うことはないかもしれませんが、
知っておくといざというときに便利です。

なるべく頭に入れておくといいでしょう。

Pythonの新着記事一覧

【Selenium】SessionNotCreatedExceptionエラーが出た時の対処法
【SQlite3】”Cannot operate on a closed database.” と出る時の対処法
【初心者にオススメ】プログラミング言語Pythonで出来ること6選!
Pythonでランダムな時間(乱数)を生成させる方法
【randomモジュールに強くなる】
Pythonファイル実行時にERROR:network_service_instance_impl.cc(426)] Failed opening SSL key log fileと出た時の対処法
まる。

Python歴3年のフルスタックエンジニア兼ブロガー兼ヨギー。大学は心理学、趣味はヨガ。
名刺・HP制作やハタヨガレッスンやってます。

まる。をフォローする
タイトルとURLをコピーしました