Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menyalurkan Output Perintah Luaran dengan Cekap dalam Modul `subproses` Python?

Bagaimanakah Saya Boleh Menyalurkan Output Perintah Luaran dengan Cekap dalam Modul `subproses` Python?

Mary-Kate Olsen
Lepaskan: 2024-12-22 16:17:14
asal
318 orang telah melayarinya

How Can I Efficiently Pipe External Command Outputs in Python's `subprocess` Module?

Melaksanakan Perintah Luaran dengan Paip Menggunakan subproses

Apabila bekerja dengan modul subproses, mungkin perlu menggunakan paip untuk menyambungkan output satu arahan luaran sebagai input kepada yang lain. Untuk mencapai matlamat ini, anda boleh menggunakan parameter shell=True dalam fungsi subprocess.check_output().

Walau bagaimanapun, adalah penting untuk meneruskan dengan berhati-hati apabila menggunakan shell=True kerana kebimbangan keselamatan. Sebaliknya, adalah disyorkan untuk mencipta proses berasingan untuk setiap arahan dan memaipkan output dengan sewajarnya.

Untuk menghuraikan lebih lanjut, pertimbangkan contoh berikut:

ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE)
output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout)
ps.wait()
Salin selepas log masuk

Dalam senario ini, arahan ps ialah dilaksanakan, dan outputnya disalurkan ke dalam arahan grep. Output yang terhasil daripada grep kemudiannya disimpan dalam pembolehubah 'output'.

Sebagai alternatif, jika shell=True tidak diingini, anda boleh menggunakan str.find untuk mencapai hasil yang sama:

output = subprocess.check_output(('ps', '-A'))
process_found = 'process_name' in output
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyalurkan Output Perintah Luaran dengan Cekap dalam Modul `subproses` Python?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan