以下是一些適合您文章內容的問題式標題: * 如何在 Python 中使用使用者輸入擷取子程序的輸出? * 從需要使用者 I 的子流程中取得輸出

DDD
發布: 2024-10-27 03:04:03
原創
791 人瀏覽過

Here are a few question-style titles that fit the content of your article:

* How to Capture Output from a Subprocess with User Input in Python? 
* Getting Output from Subprocesses That Require User Input in Python: A Guide
* Interacting with Subprocesses

在 Python 中透過使用者輸入存取子程序的輸出

在 Python 中,您可以利用 subprocess 模組來執行外部腳本。然而,當呼叫提示使用者輸入的腳本時,在呼叫腳本中取得其輸出可能具有挑戰性。本文探討了此問題的解決方案。

解決方案 1:將 check_output() 與輸入結合使用

subprocess.check_output() 函數可讓您執行腳本並捕獲它的輸出。若要將輸入傳遞給腳本,請使用輸入參數:

<code class="python">import os
import subprocess

# Get script directory
script_path = os.path.join(os.getcwd(), 'a.py')

# Execute the script and capture output
output = subprocess.check_output([sys.executable, script_path],
                                input='\n'.join(['query 1', 'query 2']),
                                universal_newlines=True)</code>
登入後複製

解決方案2:模組導入和函數呼叫

另一種方法是導入腳本模組並呼叫特定函數:

<code class="python">import a

results = [a.search(query) for query in ['query 1', 'query 2']]</code>
登入後複製

確保導入的腳本使用if __name__ == "__main__": 保護以防止其程式碼在導入時執行。

解決方案3:多處理

如果查詢處理是CPU密集的,您可以使用多處理並行執行來提高效能:

<code class="python">from multiprocessing import freeze_support, Pool
import a

freeze_support()
pool = Pool() # Use all available CPUs
results = pool.map(a.search, ['query 1', 'query 2'])</code>
登入後複製

以上是以下是一些適合您文章內容的問題式標題: * 如何在 Python 中使用使用者輸入擷取子程序的輸出? * 從需要使用者 I 的子流程中取得輸出的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!