当我用paramiko执行命令时,stdout输出不会保存到列表中

时间:2014-06-15 15:30:09

标签: python stdout paramiko

在下面的代码之前,我与服务器建立了一个ssh连接,并尝试获得一些输出。这是代码:

a = [('one','oneFC'),('two','twoH')]
b = [None] * len(a)
for i, item in enumerate(a):
    command = r"ls /home/aaa/ | grep " + item[0] #I need one and two here
    stdin, stdout, stderr = client.exec_command(command)
    print stdout.read()
    b[i] = stdout.read()
    print b[i]

当我打印输出时(使用stdout.print())它看起来不错,但是当我打印b [i]时,变量是空的。

我做错了什么?请帮帮我

谢谢

1 个答案:

答案 0 :(得分:1)

您已经在print stdout.read()之后阅读了所有内容。您应该省略第一个print语句并直接分配给b[i]

a = [('one','oneFC'),('two','twoH')]
b = [None] * len(a)
for i, item in enumerate(a):
    command = r"ls /home/aaa/ | grep " + item[0] #I need one and two here
    stdin, stdout, stderr = client.exec_command(command)
    b[i] = stdout.read()
    print b[i]