GNU/Linux >> Belajar Linux >  >> Linux

Menjalankan perintah linux dari python

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.


Linux
  1. Linux – Bagaimana Cara Mengalihkan Perangkat Output Pulseaudio Dari Baris Perintah dengan Kuat?

  2. Perintah mv Linux

  3. Linux du perintah

  1. Perintah ip Linux

  2. Perintah cd Linux

  3. Contoh Perintah Waktu Linux

  1. Cara Menyimpan Output Perintah ke File di Linux

  2. Keluaran perintah Linux sebagai parameter dari perintah lain

  3. Menjalankan skrip Python dari PHP