2016-07-06 12 views
-2

私はPythonにはかなり新しいですが、現在私は1つの問題を抱えています。私はBASHでこれを行うことができましたが、私はPythonを学びたいと思います。
リモートサーバー上で実行されたコマンドの出力に対して数学演算を行う必要があります。Python 2.7出力上の数学演算

if argument == "hosts": 
    output = [] 
    output.append(os.popen("ssh -q -o ConnectTimeout=40 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no %s cat /home/rb6873/oraclevm | cut -d\| -f3 | cut -d\= -f2 " % host).read().rstrip('\n')) 
    print(host) 
    for row in output: 
     print(row) 

次に、私は次に何をすべきか分かりません。私は解決策を見出そうとしていましたが、失敗しました。

この場合、出力は['50 \ n100 \ n75 ']で、そのタイプはリストです。これはほんの一例で、この出力の長さはサーバーによって異なります。

私がしたいことは、単純な数学を行うことです - この出力から文字列/行を要約します。

私の問題を解決する方法を教えてもらえますか、少なくとも私を正しい方向に向けることができますか?

敬具、 月

+0

既に試しましたか?あなたはこの応答(私が見る限り、\ nで区切られた整数)を解析し、それらを合計する必要があります。 –

+0

問題はなんですか?あなたは何を試しましたか、そしてどこで立ち往生しますか?あなたの問題を最初に解決しようとするのに正直な努力を払わなかったと聞きました... – skyking

+0

あなたがリストに載せると、リスト、claroです。文字列を要約する:行末の文字を数えますか? ...または行末のチェッカーで分割し、数字として解釈し、これらを一例としてまとめますか?より具体的な質問を提案してください。ありがとう(そして、あなたが言及したサーバコールからの "出力"にわたっていくつかの分散を提供します) – Dilettant

答えて

0

これらの入力の合計を取得するために、各入力行は、あなたのリストの要素になるように、あなただけの(a)は、deadlines()であなたのpopen呼び出しでread()を交換したいです。 (b)sum(int(x) for x in output)で合計を計算する。

if argument == "hosts": 
    lines = os.popen(...).readlines() 
    print(sum(int(x) for x in lines)) 

しかし、あなたはおそらくこれがどのように動作するかを説明することはできませんので、この答えはあなたのpythonでの作業について多くを教えていません。 the python tutorialを読んでみると、それはずっと簡単になるでしょう。 すぐにPython 3に切り替えてください。なぜあなたは古い言語のバージョンを学習していますか?