Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menyalurkan Proses dengan Selamat dalam `subproses` Python Tanpa Menggunakan `shell=True`?

Bagaimanakah Saya Boleh Menyalurkan Proses dengan Selamat dalam `subproses` Python Tanpa Menggunakan `shell=True`?

Patricia Arquette
Lepaskan: 2024-12-23 00:43:44
asal
887 orang telah melayarinya

How Can I Safely Pipe Processes in Python's `subprocess` Without Using `shell=True`?

Pepaipan dengan subproses

Pepaipan dengan subproses melibatkan penggunaan parameter cangkerang untuk melahirkan proses dengan cangkerang yang menyokong perpaipan output. Walau bagaimanapun, disebabkan kebimbangan keselamatan, tidak disyorkan untuk menggunakan shell=True.

Penyelesaian Paip Alternatif

Untuk menyalurkan proses tanpa bergantung pada shell=True, cipta proses berasingan untuk setiap arahan dan sambungkan aliran input dan output. Contohnya:

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

Di sini, ps mewakili proses yang berjalan ps -A dan grep ialah proses yang menjalankan grep 'process_name'.

Pendekatan Ringkas untuk Kes Anda

Dalam senario khusus anda, bukannya menggunakan paip, anda hanya boleh memanggil subprocess.check_output(('ps', '-A')) dan kemudian gunakan str.find pada output yang dikembalikan untuk menyemak proses yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyalurkan Proses dengan Selamat dalam `subproses` Python Tanpa Menggunakan `shell=True`?. 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