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

DDD
Lepaskan: 2024-10-27 03:04:03
asal
791 orang telah melayarinya

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

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!