GNU/Linux >> Linux の 問題 >  >> Linux

Python から Linux コマンドを実行する

私は通常 subprocess を使用します 外部コマンドを実行するため。あなたの場合、次のようなことができます

from subprocess import Popen, PIPE

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

出力は out になります


commands は推奨されていないため、使用しないでください。 subprocess を使用 代わりに

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

ps 端末の推定幅に収まるように出力を明らかに制限します。この幅は $COLUMNS で上書きできます 環境変数または --columns を使用 ps へのオプション .

commands モジュールは非推奨です。 subprocess を使用 ps -ef の出力を取得するには Python で出力をフィルタリングします。 shell=True は使用しないでください 他の回答で示唆されているように、この場合は単に不要です:

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)

pgrep も参照してください。 特定のプロセスを直接検索できるコマンド。


Linux
  1. Linux での tee コマンドの例

  2. 別のコマンドのパラメーターとしての Linux コマンド出力

  3. PHP から Python スクリプトを実行する

  1. Linuxコマンドの出力を変数に割り当てる方法

  2. Linuxでコマンド出力をファイルに保存する方法

  3. Linux –コマンドラインからPulseaudio出力デバイスをロバストに切り替える方法は?

  1. Linuxmvコマンド

  2. Linuxduコマンド

  3. Linuxipコマンド