首頁 > 後端開發 > Python教學 > 以下是一些符合內容的基於問題的文章標題: * 如何使用子程序執行帶有使用者輸入的Python腳本? * 從 Python 腳本擷取輸出:子流程技術指南

以下是一些符合內容的基於問題的文章標題: * 如何使用子程序執行帶有使用者輸入的Python腳本? * 從 Python 腳本擷取輸出:子流程技術指南

Linda Hamilton
發布: 2024-10-26 07:10:30
原創
431 人瀏覽過

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:使用Subprocess 傳遞輸入並捕獲輸出

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板