Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menyalurkan Perintah Dengan Betul Menggunakan Modul `subproses` Python?

Bagaimana untuk Menyalurkan Perintah Dengan Betul Menggunakan Modul `subproses` Python?

Patricia Arquette
Lepaskan: 2024-12-18 06:55:15
asal
325 orang telah melayarinya

How to Properly Pipe Commands Using Python's `subprocess` Module?

Cara Menggunakan Paip dengan Perintah subproses

Apabila bekerja dengan modul subproses, mungkin timbul senario di mana anda perlu menggunakan paip untuk sambungkan berbilang arahan. Soalan ini meneroka cabaran menggunakan subprocess.check_output() dengan arahan berikut:

ps -A | grep 'process_name'
Salin selepas log masuk

Jawapan

Untuk menggunakan paip dengan subproses, shell=True hujah boleh digunakan. Walau bagaimanapun, menggunakan shell=True menimbulkan kebimbangan keselamatan dan harus didekati dengan berhati-hati. Pendekatan yang lebih baik melibatkan mencipta proses ps dan grep secara berasingan dan menyalurkan output dari satu ke yang lain:

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 khusus yang disebutkan, penyelesaian yang lebih mudah adalah dengan menggunakan subprocess.check_output(('ps ', '-A')) dan gunakan str.find pada output.

Atas ialah kandungan terperinci Bagaimana untuk Menyalurkan Perintah Dengan Betul Menggunakan 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