ホームページ  >  記事  >  バックエンド開発  >  以下に、内容に合った質問ベースの記事タイトルをいくつか示します。 * サブプロセスを使用してユーザー入力で Python スクリプトを実行するにはどうすればよいですか? * Python スクリプトからの出力のキャプチャ: サブプロセス技術ガイド

以下に、内容に合った質問ベースの記事タイトルをいくつか示します。 * サブプロセスを使用してユーザー入力で Python スクリプトを実行するにはどうすればよいですか? * Python スクリプトからの出力のキャプチャ: サブプロセス技術ガイド

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 07:10:30346ブラウズ

Here are a few question-based article titles that fit the content:

* How to Execute Python Scripts with User Input Using Subprocess?
* Capturing Output from Python Scripts: A Guide to Subprocess Techniques
* Python Script Execution: Subprocess Methods fo

サブプロセスを使用してユーザー入力で 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。