Я использую python SSH-библиотеку с именем «paramiko». Он использует так:Почему paramiko возвращает r n как новую строку вместо n?
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=user_name, password=password)
chan = ssh_pool[host].get_transport().open_session()
chan.exec_command(SOME_COMMAND)
Потому что мне нужно выполнить какую-либо команду в Суды, мне нужно позвонить chan.get_pty() перед тем exec_command обеспечения есть терминал имеющийся.
И я нашел после того, как я вызвал get_pty(), возвращение stdout с удаленного сервера с использованием \ r \ n в качестве новой строки вместо \ n.
Например:
>>> chan = ssh.get_transport().open_session()
>>> chan.exec_command("echo hello world")
>>> chan.recv(1000)
b'hello world\n'
и после вызова get_pty():
>>> chan = ssh.get_transport().open_session()
>>> chan.get_pty()
>>> chan.exec_command("echo hello world")
>>> chan.recv(1000)
b'hello world\r\n'
У меня есть сделать некоторые веб-поиска, но не может найти что-нибудь подключиться к псевдотерминал/TTY/перевод строки/\ г \ n
Я беспокоюсь о том, что может вызвать это изменение.
Почему paramiko возвращает \ r \ n как новую строку вместо \ n?
Почему вы так беспокоитесь об этом? Это просто разрыв строки строки возвращаемого значения команды, которую вы запускаете. Конечно, вам нужно как-то это обработать, но разделите его на список на '\ n' и замените' \ r' или замените как '\ r', так и' \ n': http: // stackoverflow.com/questions/16566268/remove-all-line-breaks-from-a-long-string-of-text –
@ JensHöpken Потому что я имею дело с кучей сервера с совершенно разными средами. Я думаю, что имею дело только с \ r \ n и \ n. Но я все еще беспокоюсь, если не могу понять, что может вызвать это, когда-нибудь выйдет какая-то неизвестная проблема. –