GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ausführen eines Linux-Befehls von Python

Normalerweise verwende ich subprocess zum Ausführen eines externen Befehls. Für Ihren Fall können Sie so etwas tun

from subprocess import Popen, PIPE

p = Popen('ps -ef | grep rtptransmit | grep -v grep', shell=True,
          stdout=PIPE, stderr=PIPE)
out, err = p.communicate()

Die Ausgabe erfolgt in out Variable.


commands veraltet ist, sollten Sie es nicht verwenden. Verwenden Sie subprocess stattdessen

import subprocess
a = subprocess.check_output('ps -ef | grep rtptransmit | grep -v grep', shell=True)

ps begrenzt anscheinend seine Ausgabe, um in die vermutete Breite des Terminals zu passen. Sie können diese Breite mit dem $COLUMNS überschreiben Umgebungsvariable oder mit dem --columns Option zu ps .

Die commands Modul ist veraltet. Verwenden Sie subprocess um die Ausgabe von ps -ef zu erhalten und filtern Sie die Ausgabe in Python. Verwenden Sie nicht shell=True Wie andere Antworten vermuten lassen, ist es in diesem Fall einfach überflüssig:

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)

Vielleicht möchten Sie auch einen Blick auf pgrep werfen Befehl, mit dem Sie direkt nach bestimmten Prozessen suchen können.


Linux
  1. Linux-mv-Befehl

  2. Linux-Du-Befehl

  3. Beispiele für Linux-Zeitbefehle

  4. Linux-Befehlsausgabe als Parameter eines anderen Befehls

  5. Ausführen eines Python-Skripts von PHP

W-Befehl unter Linux

Bei Befehl unter Linux

iftop-Befehl unter Linux

lsblk-Befehl unter Linux

So entfernen Sie einen Befehl aus dem Verlauf in Linux

Beispiele für Linux-Echo-Befehle