PY ファイル形式とは?
.py は、Pythonプログラミング言語で記述された スクリプトファイル に使用されるファイル拡張子です。 .py ファイルにはPythonで書かれたソースコードが含まれており、デフォルトではUTF-8エンコーディングのプレーンテキストとして保存されるため、特別なツールを使わずに読み取りや修正が可能です。
.py ファイルの汎用性
.py 形式は多くの用途があり、広く普及しているPythonインタープリタと膨大なライブラリのエコシステムによって非常に人気があります。この形式は、Windows、macOS、Unix/Linuxを含む多くのオペレーティングシステムでサポートされています。Pythonの活用範囲は、ウェブ開発やデータサイエンスから機械学習、自動化まで多岐にわたり、現代のソフトウェア開発のほぼすべての領域で .py ファイルが利用されています。
.py ファイルの管理
.py ファイルの表示、開封、編集は、任意のテキストエディタを使用して可能です。ただし、 .py スクリプトを実行するには、システムにPythonインタープリタがインストールされている必要があります。標準的なコマンドは python script.py または python3 script.py です。 .py スクリプトファイルは、システム管理、タスクの自動化、データ処理によく使用されます。Pythonがモジュールをインポートすると、ソースの横にコンパイル済みの .pyc キャッシュが作成されることがあります。関連するバリアントには、 .pyw (コンソールウィンドウを表示しないWindows GUIスクリプト)や、型ヒントに使用される .pyi スタブファイルがあります。
セキュリティと安全性
リスク: HIGH.py ファイルはプログラムです。実行すると、そこに含まれるコードがユーザーの権限で実行されます。信頼できないソースからの Python スクリプトは、中身を読む前に決して実行しないでください。悪意のあるスクリプトは、ファイルの削除、マルウェアのインストール、データの盗難を行う可能性があり、Pythonはマルウェア配信によく使われる言語でもあります。テキストエディタで .py を「開く」だけなら安全です(単なるテキストです)。スクリプトが必要とする未知のパッケージの «pip install» には注意してください。タイポスクワッティングされた PyPI パッケージは現実的な攻撃ベクトルです。疑わしい場合はソースを読んでください。 .py は設計上、人間が読めるようになっています。
形式の詳細
概要PY ファイルを開くプログラム
技術的詳細
詳細仕様| ファイルタイプ | プレーンテキスト Python ソースコード |
| MIMEタイプ | text/x-python |
| デフォルトエンコーディング | UTF-8 (PEP 3120); 1行目または2行目の `# -*- coding: <name> -*-` 宣言によって上書き可能 |
| シバン(Shebang)サポート | Unix/Linuxスクリプトでは、1行目に `#!/usr/bin/env python3` を記述することで、インタープリタを明示的に呼び出さずに直接実行可能 |
| インデント構文 | 意味を持つ空白 - インデントは文法の一部です。PEP 8では1レベルにつき4つのスペースを推奨しています |
| モジュールエントリポイント | `if __name__ == "__main__":` ガードにより、インポート可能なコードと、ファイルが直接実行されたときのみ動作するコードを分離 |
| コンパイル済みキャッシュ | CPythonは `.py` ソースを `.pyc` バイトコードにコンパイルし、次回のインポートを高速化するために `__pycache__/` に保存 |
| 型ヒントのサポート | PEP 484(Python 3.5以降)によるオプションのインラインアノテーション。個別のスタブ定義は `.pyi` ファイルに保存 |
| コメント構文 | `#` は単一行コメントを開始します。トリプルクォート文字列(`"""..."""`)は、モジュール、クラス、関数の docstring として機能 |
| ランタイム | CPython (リファレンス実装), PyPy, Jython, MicroPython, GraalPy |
| 改行コード | プラットフォームを問わず LF が推奨されます。Windowsでは CRLF も受け入れられます |
| インポートシステム | `import` および `from ... import` でモジュールをロードします。 `__init__.py` を含むディレクトリはパッケージとして扱われます |
| マジックバイト | なし - `.py` はバイナリ署名のないプレーンテキストファイルです。内容(シバン、 `import`/`def`/`class` キーワード、またはインデントパターン)によって識別されます |
| リリース日 | 1991 (Python 0.9.0); language steward: Python Software Foundation since 2001 |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | docs.python.org |