2017-07-20 17 views
1

私はこのスクリプトを持っている:Pythonのstdoutから nと r nを削除するにはどうしたらいいですか?

#!/usr/bin/python 

import subprocess 
import sys 

HOST="cacamaca.caca" 
COMMAND="display mac-address 0123-4567-8910" 

ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND], 
         shell=False, 
         stdout=subprocess.PIPE, 
         stderr=subprocess.PIPE) 
result = ssh.stdout.readlines() 
if result == []: 
    error = ssh.stderr.readlines() 
    print >>sys.stderr, "ERROR: %s" % error 
else: 
    print result 

出力はスペースと異なるラインを持っているので、結果がクリーンものではありませんので、それはあまりにもキャリッジリターンと改行を出力します。

[ '\ rを\ VTYユーザーの最大数は10です。現在のVTYユーザーの数は2です。\ r \ n '、' cacamaca.caca \ r \ n '、' '現在のログイン時間は2017-07-20 20:10:54 + 03:00 DSTです。\ r \ n'、 '--------------------- -------------------------------------------------- -------- \ r \ n '、' MACアドレスVLAN/VSI学習タイプから\ r \ n '、' ------------------- -------------------------------------------------- ---------- \ r \ n '、' 0123-4567-8910 1 234/- Eth-Trunk9 dynamic \ r \ n '、' \ r \ n '、' ----------------------------- -------------------------------------------------- '\ n \'、 '\ r \ n'、またはそれらを置き換えるにはどうすればよいですか?結果は元のように見えるようにスペースで区切ります。私はこれについて多くの答えを読んだが、誰も助けなかった。

+1

ようこそ[so]!あなたの質問を編集して、出力をどのように見せたいのかの例を含めることができますか? – TemporalWolf

答えて

2

result変数はリストです。私は結果を単一の文字列に結合してそれを印刷したいと思う。あなたはstr.join()

これは、次のような出力になります

print ''.join(result) 

このような
cacamaca.caca 
Info: The max number of VTY users is 10, and the number 
of current VTY users on line is 2. 
The current login time is 2017-07-20 20:10:54+03:00 DST. 
------------------------------------------------------------------------------- 
MAC Address VLAN/VSI Learned-From Type 
------------------------------------------------------------------------------- 
0123-4567-8910 1234/- Eth-Trunk9 dynamic 

------------------------------------------------------------------------------- 
Total items displayed = 1 
+0

ありがとうございました。ちょうどそれをテストした。それは素晴らしい仕事と私は問題を完全に理解した:D –

+0

はupvoteしようとしたが、私はまだ低い議員です。私は答えを受け入れた。すべてを再びtnx –

1

であなたは、たとえば、それらを交換するために改行文字を削除、または.replace()する.strip()を使用できることを行うことができます。

result = [x.strip() for x in result] 

出力:

['', 'cacamaca.caca', 'Info: The max number of VTY users is 10, and the number', 'of current VTY users on line is 2.', 'The current login time is 2017-07-20 20:10:54+03:00 DST.', '-------------------------------------------------------------------------------', 'MAC Address VLAN/VSI Learned-From Type', '-------------------------------------------------------------------------------', '0123-4567-8910 1234/- Eth-Trunk9 dynamic', '', '-------------------------------------------------------------------------------', 'Total items displayed = 1', '', ''] 
関連する問題