首頁  >  文章  >  後端開發  >  如何消除 Paramiko SSH 輸出中的垃圾值?

如何消除 Paramiko SSH 輸出中的垃圾值?

Susan Sarandon
Susan Sarandon原創
2024-10-19 07:12:021088瀏覽

How to Eliminate Junk Values in Paramiko SSH Output?

使用Paramiko 消除SSH 輸出中的垃圾值

透過Paramiko 的SSH 函式庫從遠端電腦的CLI 取得輸出時,可能會遇到未經請求的字元例如“x1b[2Jx1b[1;1H”和“u”。這些是 ANSI 轉義碼,用於修飾終端客戶端的輸出。

原因和解決方法

Paramiko 的 SSHClient.invoke_shell 提示輸入偽終端,導致這些轉義代碼出現。對於自動執行命令,建議使用 SSHClient.exec_command,它預設不分配偽終端。

<code class="python">stdin, stdout, stderr = client.exec_command('ls')</code>

替代解決方案

如果使用「shell」通道是必需的,沒有偽終端也是可行的,但Paramiko的SSHClient.invoke_shell不提供此功能。您可以手動建立“shell”通道。

<code class="python"># Not supported by Paramiko SSHClient.invoke_shell
channel = ssh_client.get_transport().open_channel("session")
channel.exec_command("ls")</code>

Unicode 編碼說明

輸出字串中的「u」前綴表示 Unicode 編碼,應該保留。

以上是如何消除 Paramiko SSH 輸出中的垃圾值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn