GNU/Linux >> Linux Esercitazione >  >> Linux

Esecuzione di un comando linux da python

Di solito uso subprocess per eseguire un comando esterno. Per il tuo caso, puoi fare qualcosa di simile

from subprocess import Popen, PIPE

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

L'output sarà in out variabile.


commands è deprecato, non dovresti usarlo. Usa subprocess invece

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

ps apparentemente limita la sua uscita per adattarsi alla presunta larghezza del terminale. Puoi sovrascrivere questa larghezza con $COLUMNS variabile d'ambiente o con il --columns opzione a ps .

L'commands modulo è deprecato. Usa subprocess per ottenere l'output di ps -ef e filtrare l'output in Python. Non utilizzare shell=True come suggerito da altre risposte, in questo caso è semplicemente superfluo:

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)

Potresti anche dare un'occhiata al pgrep comando con il quale puoi cercare direttamente processi specifici.


Linux
  1. Comando Linux mv

  2. Linux du comando

  3. Esempi di comandi temporali di Linux

  4. Automatizzare l'esecuzione del comando su Linux da Windows utilizzando PuTTY

  5. Omissione della prima riga da qualsiasi output di comando Linux

Comando W in Linux

Al comando in Linux

comando iftop in Linux

Comando lsblk in Linux

Come rimuovere un comando dalla cronologia in Linux

Esempi di comandi echo Linux