Python 別の Python スクリプトを実行する

Vaibhhav Khetarpal 2023年1月30日
  1. 別の Python スクリプトで import ステートメントを使用して Python スクリプトを実行する
  2. 別の Python スクリプトで execfile() メソッドを使用して Python スクリプトを実行する
  3. 別の Python スクリプトで subprocess モジュールを使用して Python スクリプトを実行する
Python 別の Python スクリプトを実行する

クライアントが直接実行することを目的とした Python コードを含む基本的なテキストファイルは、通常、スクリプトと呼ばれ、正式にはトップレベルプログラムファイルと呼ばれます。

スクリプトは、Python で直接実行することを目的としています。スクリプトとコードの実行を学ぶことは、Python プログラミングの世界で学ぶための基本的なスキルです。Python スクリプトには通常、拡張子'.py'が付いています。スクリプトを Windows マシンで実行する場合、拡張子は .pyw である可能性があります。

このチュートリアルでは、別の Python スクリプト内で Python スクリプトを実行するためのさまざまな方法について説明します。

別の Python スクリプトで import ステートメントを使用して Python スクリプトを実行する

import ステートメントは、Python コードにいくつかのモジュールをインポートするために使用されます。モジュールから特定のコードにアクセスするために使用されます。このメソッドは、import ステートメントを使用してスクリプトを Python コードにインポートし、それをモジュールとして使用します。モジュールは、Python の定義とステートメントを含むファイルとして定義できます。

次のコードは、import ステートメントを使用して、別の Python スクリプトで Python スクリプトを実行します。

  • Script1.py
def func1():
    print("Function 1 is active")


if __name__ == "__main__":
    # Script2.py executed as script
    # do something
    func1()

出力:

Function 1 is active
  • Script2.py
import Script1.py


def func2():
    print("Function 2 is active")


if __name__ == "__main__":
    # Script2.py executed as script
    # do something
    func2()
    Script1.func1()

出力:

Function 2 is active
Function 1 is active

別の Python スクリプトで execfile() メソッドを使用して Python スクリプトを実行する

execfile() 関数は、インタープリターで目的のファイルを実行します。この関数は Python 2 でのみ機能します。Python 3 では、execfile() 関数が削除されましたが、Python 3 でも exec() メソッドを使用して同じことが実現できます。

次のコードは、execfile() 関数を使用して、別の Python スクリプトで Python スクリプトを実行します。

  • Script2.py
# Python 2 code
execfile("Script1.py")

出力:

Function 1 is active

Python 3 でも、次を使用して同じことができます。

  • Script2.py
exec(open("Script1.py").read())

出力:

Function 1 is active

別の Python スクリプトで subprocess モジュールを使用して Python スクリプトを実行する

subprocess モジュールは、新しいプロセスを生成することができ、それらの出力を返すこともできます。これは新しいモジュールであり、以前は別の Python スクリプトで Python スクリプトを実行するために使用されていた os.system などの古いモジュールを置き換えることを目的としています。

次のコードは、subprocess モジュールを使用して、別の Python スクリプトで Python スクリプトを実行します。

  • Script1.py
def func1():
    print("Function 1 is active")


if __name__ == "__main__":
    # Script2.py executed as script
    # do something
    func1()
  • Script2.py
import subprocess

subprocess.call("Script1.py", shell=True)

出力:

Function 1 is active

3つの方法はすべて問題なく機能しますが、この方法は他の 2つの方法よりも優れています。このメソッドでは、既存の Python スクリプトを編集し、それに含まれるすべてのコードをサブルーチンに入れる必要はありません。

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn