首頁  >  文章  >  後端開發  >  使用 Paramiko 取得遠端 CLI 資料時如何消除不需要的輸出?

使用 Paramiko 取得遠端 CLI 資料時如何消除不需要的輸出?

Linda Hamilton
Linda Hamilton原創
2024-10-19 07:14:02808瀏覽

How to Eliminate Unwanted Output When Fetching Remote CLI Data Using Paramiko?

使用Paramiko 取得遠端CLI 輸出時刪除無關輸出

利用Paramiko 函式庫建立SSH 連線並從遠端電腦的命令列檢索輸出時,使用者經常會遇到伴隨預期輸出的無關字符,例如神秘的[2Jx1b[1;1H 和u.這些看似不必要的數據可能會導致混亂,並且在提取關鍵信息時可能是有害的。

垃圾的來源

令人困惑的字元不是垃圾,而是垃圾終端客戶端使用ANSI 轉義碼以用戶友好的方式格式化和顯示輸出。當使用 SSHClient.invoke_shell 方法時,Paramiko 會自動使用這些程式碼,因為它假定建立了互動式終端。

執行命令的更好方法

如果您的任務涉及自動執行遠端命令,更合適的方法是 SSHClient.exec_command。此方法預設繞過偽終端的分配,消除了額外的字元。

或:轉義程式碼

作為解決方法,可以刪除使用特定技術從字串中轉義 ANSI 序列。然而,這種方法可能還不夠,並且可能會帶來額外的複雜性。

Unicode 編碼

最後,字串值前面的u 前綴不是實際值的一部分string 而是表示Unicode 編碼,這是準確表示字元的重要方面,尤其是那些屬於非英語語言的字符。

以上是使用 Paramiko 取得遠端 CLI 資料時如何消除不需要的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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