【问题标题】:The output from paramiko stdout incorrectly transfers linesparamiko stdout 的输出错误地传输行
【发布时间】:2019-04-01 14:55:28
【问题描述】:

我正在尝试获取远程计算机(ssh、paramiko)上具有特定扩展名的文件列表。但是,在读取时,并非所有文件的路径都正确显示。

代码:

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, username=user, password=secret, port=port)
cmd = '''dir /s /b /n D:\\*.bat\n'''
stdin, stdout, stderr = client.exec_command(cmd, get_pty=True)
for line in stdout:
  print(line)

我得到类似 D:\dir\tes

t.bat

(代替D:\dir\test.bat)

(部分路径被转移到下一行)试图通过read()读取。 decode(),通过readlines(),结果是一样的,能不能解决一下问题?

【问题讨论】:

  • 为什么要在cmd 值后面加上换行符?
  • 刚刚试了一下。没有换行符的结果是一样的

标签: python-3.x ssh cmd paramiko


【解决方案1】:

尝试删除get_pty=True

只有在实施交互式会话时才应请求 PTY。它会带来与您正在经历的副作用一样的副作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    相关资源
    最近更新 更多