我对python很新,目前我遇到了一个问题。我可以在BASH中做到这一点,但我想学习python 我需要对远程服务器上执行的命令的输出进行数学运算。
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 :(得分:0)
要获得这些输入的总和,您只需(a)将read()
调用中的popen
替换为deadlines()
,以便每个输入行都成为你的清单; (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. 为什么要学习该语言的过时版本?