首頁 >後端開發 >Python教學 >如何使用子進程自動執行使用者輸入並從 Python 腳本檢索 JSON 輸出?

如何使用子進程自動執行使用者輸入並從 Python 腳本檢索 JSON 輸出?

Patricia Arquette
Patricia Arquette原創
2024-10-26 08:16:30297瀏覽

How to Automate User Input and Retrieve JSON Output from Python Scripts with subprocess?

使用Subprocess 透過使用者輸入呼叫Python 腳本

在Python 中,你可能會遇到想要執行腳本的場景(參考如“a.py”),提示使用者輸入並產生JSON 格式的輸出。若要使用Python 的子程序模組從另一個腳本(名為「b.py」)自動執行此腳本,請依照下列步驟操作:

匯入必要的模組:

<code class="python">import os
import sys
from subprocess import check_output</code>

確定路徑到要執行的腳本(“a.py”):

<code class="python">script_path = os.path.join(get_script_dir(), 'a.py')</code>

使用check_output() 函數執行“a.py”並為其提供輸入:

<code class="python">output = check_output([sys.executable, script_path],
                      input='\n'.join(['query 1', 'query 2']),
                      universal_newlines=True)</code>

此指令執行以下操作:

  • 提供「查詢1」和「查詢2」作為腳本的輸入。
  • 使用 sys 指定的 Python 解譯器執行腳本。可執行檔。
  • 在「輸出」變數中捕捉腳本的輸出。

透過以這種方式提供輸入,您可以有效地模擬使用者與腳本的互動。現在可以根據需要在“b.py”腳本中使用輸出。

其他替代方案

  • 匯入和呼叫函數: 您可以匯入「a.py」模組並直接呼叫其函數,提供輸入並檢索結果。
  • 使用多處理:如果查詢處理是 CPU 密集型的,請考慮使用多處理來在單獨的進程中運行每個查詢以提高效能。

以上是如何使用子進程自動執行使用者輸入並從 Python 腳本檢索 JSON 輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn