ホームページ >バックエンド開発 >Python チュートリアル >Paramiko を使用してリモート SSH CLI 出力のジャンク値を処理するにはどうすればよいですか?
Paramiko を介したリモート SSH CLI 出力のジャンク値の処理
SSH 接続とリモート マシンからの出力取得に Python の Paramiko ライブラリを使用する場合CLI では、ユーザーは目的の出力に不要なジャンク値が散在する可能性があります。これらの値は、「x1b[2Jx1b[1;1H」などの ANSI エスケープ コードの形式であることが多く、出力が乱雑になり、使いやすさが損なわれる可能性があります。
ジャンク値のソースを理解する
ジャンクであるという想定に反して、これらのエスケープ コードは、端末環境で出力を適切に表示するために不可欠です。これらは、テキストのフォーマット方法やカーソルの移動方法などについて端末に指示を提供します。ただし、対話型ターミナルを使用していない場合、これらのコードは問題になる可能性があります。
解決策: コマンドを対話的に実行する
デフォルトでは、Paramiko の SSHClient.invoke_shell メソッドは、対話型ターミナル セッション。エスケープ コードが含まれることになります。これを解消するには、(明示的に有効にしない限り) 疑似端末を使用せずにコマンドを実行する exec_command メソッドに切り替えます。
代替ソリューション
何らかの理由がある場合「シェル」チャネルを使用する必要がありますが、擬似端末を使用せずに手動で作成できます。さらに、次の回避策を使用して、文字列出力からエスケープ シーケンスを削除できます。
出力エンコーディングをデコード
前に「u」文字があることに注意してください。質問内の文字列出力は Unicode エンコードを示します。これは、出力で非 ASCII 文字を処理するために必要です。
以上がParamiko を使用してリモート SSH CLI 出力のジャンク値を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。