私はこのlinuxコマンドをpythonから実行し、出力を変数に割り当てる必要があります。Pythonからlinuxコマンドを実行する
ps -ef | grep rtptransmit | grep -v grep
これを行うにはpythonsコマンドライブラリを使用しようとしました。
import commands
a = commands.getoutput('ps -ef | grep rtptransmit | grep -v grep')
しかし、aは切り捨てられます。
'nvr 20714 20711 0 10:39 ? 00:00:00 /opt/americandynamics/venvr/bin/rtptransmit setup_req db=media camera=6 stream=video substream=1 client_a'
が、予想される出力は次のとおりです:私が手に出力され
nvr 20714 20711 0 10:39 ? 00:00:00 /opt/americandynamics/venvr/bin/rtptransmit setup_req db=media camera=6 stream=video substream=1 client_address=192.168.200.179 client_rtp_port=6970 override_lockout=1 clienttype=1
誰もが切り取らなったり、誰もが別の方法を提案することができますからの出力を停止する方法を知っていますか?
-1は、 'grep'と' shell = True'の無駄使いです。 – lunaryorn
'shell'は、コマンドでパイプを使いたい場合に必要です。 'grep'については、私は実際に質問からコマンドをコピーして貼り付けました。 grepコマンドは、grepコマンドで実行されることがあるため、削除する必要があります。これは実際には 'grep [r] tptransmit'を使って避けることができます。 – fajran
コマンドでパイプを使うには' shell = True'が必要ですが、2番目の 'grep'は最初の' grep'コマンドをフィルタ処理されたプロセスリスト。しかし、この両方の場合、パイプと 'grep'はこの場合余計です。 – lunaryorn