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!