Python 別の Python スクリプトを実行する
-
別の Python スクリプトで
import
ステートメントを使用して Python スクリプトを実行する -
別の Python スクリプトで
execfile()
メソッドを使用して Python スクリプトを実行する -
別の Python スクリプトで
subprocess
モジュールを使用して 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 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