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
941 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!

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