Python で他のスクリプトの関数を呼び出して実行する方法を、できるだけ簡潔にまとめておきます。
サンプルプログラムが動いたら、修正して活用してください。
環境: Windows パソコン、Anaconda、Python 3.x で動作確認をしています。
サンプルコード:他の Python スクリプトを呼び出して実行する方法
py1.py
def print1( str1 ):
print( str1 )
test1.py
import py1 # module (py1.py)
py1.print1( "abc" )
使い方
① 任意のフォルダを1つ作り、その中に py1.py、test1.py の2つのファイルを作成し、上記のスクリプトを貼りつけて保存してください。2つのファイルは同じフォルダ内に保存してください。
② コマンドプロンプトから上記の test1.py を実行してください。
(コマンドプロンプトを起動し、”python” + [space] と打ち込み、上記の test1.py をコマンドプロンプトにドラッグ(フルパスで表示される)し、[enter]キーを押下してください。)
→ ”abc” と表示されたら、動作確認完了です。
サンプルコードの説明:スクリプトの呼び出し
・ py1.py が呼び出されるほうのスクリプトです。
うまく動いたら、関数 def の書き方をまねて、任意の関数を追加してみてください。
サンプルコードでは、print1 関数を定義しています。受け取った文字列を単に print 関数で表示させているだけです。
・ test1.py が本体側のスクリプトです。
冒頭で py1.py をインポートしています。
つぎに、インポートした py1 の中に定義されている print1 関数を呼び出し、文字列 “abc” を渡して実行しています。
・ なお、py1.print1( ) の見かけだけからすると、メソッドを実行しているように見えます。
しかし、py1.py は import するファイル名です(モジュールといわれています)。
そして、py1.py のスクリプト内では、def 関数だけが定義されています(クラスは作成していません)。
したがって、メソッドではなく関数を呼び出して実行していることになります。
おやっと思った方は、下記の関連リンク「クラスのポイントまとめ」にまとめていますので、参考にしてみてください。
まとめ
他のスクリプトの関数を呼び出して実行する方法についてまとめました。たかだか、2行程度です。
これで、よく繰り返して使うコードは1度定義さえしておけば、以後、他から呼び出して、自由に使いまわせるようになりました。
例えば、機械学習とファイル処理などは複雑化しやすいのでファイルを分けるなど改善できると思います。
また、tkinter などの GUI についても、インターフェースと機能をわけることで、スクリプトの再利用を可能にするなど、改善ができると思います。
関連リンク
・ メソッドと関数の違い 【Python】
・ クラスのポイントまとめ 【Python】
・ モジュール、パッケージ、ライブラリのまとめ【Python】
・ バッチファイルで Anaconda から Python を実行する方法 【Windows】
・ Python で他の Python スクリプトごと実行する方法
外部リンク
・ 6. モジュール — Python 3.12.1 ドキュメント