他のスクリプトの関数を実行する 【Python】

programming Python

Python で他のスクリプトの関数を呼び出して実行する方法を、できるだけ簡潔にまとめておきます。
サンプルプログラムが動いたら、修正して活用してください。

環境: Windows 10、Anaconda、Python 3.x で動作確認をしています。

サンプルコード:他の Python スクリプトを呼び出して実行する方法

py1.py

def print1( str1 ): 
    print( str1 ) 

test1.py

import py1     # package
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 を使う場合は、GUI 側を親にして他のスクリプトに書かれた機械学習の処理などを呼び出すことになると思います。

関連リンク
・ メソッドと関数のまとめ 【Python】
・ クラスのポイントまとめ 【Python】
・ バッチファイルで Anaconda から Python を実行する方法 【Windows 10】
・ Python で他の Python スクリプトごと実行する方法

タイトルとURLをコピーしました