Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menghapuskan Nilai Sampah dalam Output SSH Paramiko?

Bagaimana untuk Menghapuskan Nilai Sampah dalam Output SSH Paramiko?

Susan Sarandon
Susan Sarandonasal
2024-10-19 07:12:021123semak imbas

How to Eliminate Junk Values in Paramiko SSH Output?

Membuang Nilai Sampah daripada Output SSH menggunakan Paramiko

Apabila mengambil output daripada CLI mesin jauh melalui perpustakaan SSH Paramiko, seseorang mungkin menghadapi aksara yang tidak diminta seperti "x1b[2Jx1b[1;1H" dan "u." Ini ialah kod melarikan diri ANSI yang memperindah keluaran untuk pelanggan terminal.

Punca dan Penyelesaian

SSHClient.invoke_shell Paramiko menggesa terminal pseudo, mengakibatkan penampilan melarikan diri ini kod. Untuk pelaksanaan arahan automatik, adalah disyorkan untuk menggunakan SSHClient.exec_command sebaliknya, yang tidak memperuntukkan terminal pseudo secara lalai.

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

Penyelesaian Alternatif

Jika menggunakan Saluran "shell" adalah penting, ia boleh dilakukan tanpa terminal pseudo, tetapi SSHClient.invoke_shell Paramiko tidak menawarkan ciri ini. Seseorang boleh mencipta saluran "shell" secara manual.

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

Nota Pengekodan Unikod

Awalan "u" dalam rentetan output menunjukkan pengekodan Unikod, yang sepatutnya dipelihara.

Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Nilai Sampah dalam Output SSH Paramiko?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn