Mengakses Output Subproses dengan Input Pengguna dalam Python
Dalam Python, anda boleh menggunakan modul subproses untuk melaksanakan skrip luaran. Walau bagaimanapun, apabila memanggil skrip yang menggesa input pengguna, mendapatkan outputnya dalam skrip panggilan boleh menjadi mencabar. Artikel ini meneroka penyelesaian kepada masalah ini.
Penyelesaian 1: Menggunakan check_output() dengan Input
Fungsi subprocess.check_output() membolehkan anda menjalankan skrip dan menangkap keluarannya. Untuk menghantar input kepada skrip, gunakan parameter input:
<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>
Penyelesaian 2: Import Modul dan Panggilan Fungsi
Pendekatan alternatif ialah mengimport modul skrip dan panggil fungsi tertentu:
<code class="python">import a results = [a.search(query) for query in ['query 1', 'query 2']]</code>
Pastikan skrip yang diimport menggunakan if __name__ == "__main__": guard untuk menghalang kodnya daripada dilaksanakan semasa import.
Penyelesaian 3: Multiprocessing
Jika pemprosesan pertanyaan memerlukan CPU intensif, anda boleh meningkatkan prestasi dengan menyelaraskan pelaksanaan menggunakan multiprocessing:
<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>
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk gaya soalan yang sesuai dengan kandungan artikel anda: * Bagaimana untuk Menangkap Output daripada Subproses dengan Input Pengguna dalam Python? * Mendapatkan Output daripada Subproses yang Memerlukan Pengguna I. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!