サブプロセスを使用してユーザー入力で Python スクリプトを実行する
別のスクリプト (b.py) から Python スクリプト (a.py) を実行する場合サブプロセスを介してスクリプトの出力をキャプチャするのは困難な場合があります。この記事では、目的の出力を取得するための代替方法を説明します。
方法 1: サブプロセスを使用して入力を渡し、出力をキャプチャする
<code class="python">import os import sys from subprocess import check_output script_path = os.path.join(get_script_dir(), 'a.py') output = check_output([sys.executable, script_path], input='\n'.join(['query 1', 'query 2']), universal_newlines=True)</code>
方法 2: モジュールをインポートするおよび関数の呼び出し
より柔軟なアプローチは、ターゲット モジュール (a) をインポートし、その中で特定の関数を呼び出すことです。 a.py が if __name__ == "__main__" ガードを使用して、インポート時に望ましくないコードが実行されないようにします。
<code class="python">import a result = [a.search(query) for query in ['query 1', 'query 2']]</code>
方法 3: 並列クエリ実行のためのマルチプロセッシング
クエリの実行が CPU を集中的に使用する場合は、マルチプロセッシングを利用してクエリを同時に実行できます:
<code class="python">from multiprocessing import freeze_support, Pool import a if __name__ == "__main__": freeze_support() pool = Pool() # use all available CPUs result = pool.map(a.search, ['query 1', 'query 2'])</code>
以上が以下に、内容に合った質問ベースの記事タイトルをいくつか示します。 * サブプロセスを使用してユーザー入力で Python スクリプトを実行するにはどうすればよいですか? * Python スクリプトからの出力のキャプチャ: サブプロセス技術ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。