Lors de l'utilisation de la bibliothèque Paramiko pour établir une connexion SSH et récupérer la sortie de la ligne de commande d'une machine distante , les utilisateurs rencontrent souvent des caractères superflus accompagnant la sortie prévue, tels que les mystérieux [2Jx1b[1;1H et u. Ces données apparemment inutiles peuvent prêter à confusion et peuvent être préjudiciables lors de l'extraction d'informations cruciales.
La source des déchets
Les personnages déroutants ne sont pas des déchets mais plutôt Codes d'échappement ANSI utilisés par les clients du terminal pour formater et afficher la sortie de manière conviviale. Ces codes sont automatiquement employés par Paramiko lors de l'utilisation de la méthode SSHClient.invoke_shell, car cela suppose la mise en place d'un terminal interactif.
Une meilleure façon d'exécuter des commandes
Si votre tâche consiste à automatiser l'exécution de commandes à distance, une méthode plus appropriée est SSHClient.exec_command. Cette approche contourne l'attribution d'un pseudo-terminal par défaut, éliminant les caractères supplémentaires.
Alternative : échapper aux codes
En guise de solution de contournement, il est possible de supprimer le Séquences d'échappement ANSI des chaînes à l'aide de techniques spécifiques. Cependant, cette approche peut s'avérer insuffisante et pourrait introduire des complications supplémentaires.
Encodage Unicode
Enfin, le préfixe u devant les valeurs de chaîne ne fait pas partie du véritable chaîne mais indique plutôt le codage Unicode, un aspect essentiel pour représenter avec précision les caractères, en particulier ceux appartenant à des langues non anglaises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!