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



在编写下面的代码之前,我建立了一个到服务器的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]时,变量是空的。

我做错了什么?请帮帮我

谢谢

您已经阅读了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]

最新更新