使用子程序透過使用者輸入執行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中文網其他相關文章!