Выход из paramiko stdout некорректно переносит строки - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь получить список файлов с определенным расширением на удаленном компьютере (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 (), результат тот же, можете ли вы как-то решить проблему?

1 Ответ

0 голосов
/ 01 апреля 2019

Попробуйте удалить get_pty=True.

PTY. Запрашивать PTY следует только при реализации интерактивного сеанса.Он приносит побочные эффекты, такие как тот, который вы испытываете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...