在 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中文網其他相關文章!