Saya biasanya menggunakan subprocess untuk menjalankan perintah eksternal. Untuk kasus Anda, Anda dapat melakukan sesuatu seperti berikut
from subprocess import Popen, PIPE
p = Popen('ps -ef | grep rtptransmit | grep -v grep', shell=True,
stdout=PIPE, stderr=PIPE)
out, err = p.communicate()
Outputnya akan berada di out variabel.
commands sudah usang, Anda sebaiknya tidak menggunakannya. Gunakan subprocess sebagai gantinya
import subprocess
a = subprocess.check_output('ps -ef | grep rtptransmit | grep -v grep', shell=True)
ps tampaknya membatasi outputnya agar sesuai dengan lebar terminal yang diperkirakan. Anda dapat mengganti lebar ini dengan $COLUMNS variabel lingkungan atau dengan --columns opsi untuk ps .
commands modul tidak digunakan lagi. Gunakan subprocess untuk mendapatkan output dari ps -ef dan saring hasilnya dengan Python. Jangan gunakan shell=True seperti yang disarankan oleh jawaban lain, itu tidak berguna dalam hal ini:
ps = subprocess.Popen(['ps', '-ef', '--columns', '1000'], stdout=subprocess.PIPE)
output = ps.communicate()[0]
for line in output.splitlines():
if 'rtptransmit' in line:
print(line)
Anda mungkin juga ingin melihat pgrep perintah yang dengannya Anda dapat langsung mencari proses tertentu.