You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python用paramiko获取Cisco交换机输出显示转义符不换行如何解决

问题原因

调用stdout.readlines()得到的是由每行字符串组成的列表,直接使用print打印列表时,Python会输出列表的结构化表示,其中的转义字符(\r、\n)会被原样打印而不会触发换行效果,该问题和PyCharm的Soft Wrap设置无关。

解决方案

  • 方法1:直接读取完整输出再打印
    把打印逻辑替换为如下代码,直接读取所有字节流解码为字符串后输出,会自动识别换行符完成换行:
    import paramiko
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect("10.0.0.1", username="lab", password="lab")
    stdin, stdout, stderr = ssh.exec_command("show ver")
    # 读取完整内容解码后打印
    print(stdout.read().decode('utf-8'))
    ssh.close()
    
  • 方法2:遍历输出列表逐行打印
    如果需要对每一行内容单独做校验、提取等处理,可以遍历readlines()返回的列表逐行打印:
    import paramiko
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect("10.0.0.1", username="lab", password="lab")
    stdin, stdout, stderr = ssh.exec_command("show ver")
    for line in stdout.readlines():
        # 可根据需求选择是否加strip(),strip()会移除行首尾的空白符和换行符
        print(line.strip())
    ssh.close()
    
  • 适配优化:如果输出出现乱码,可以尝试把解码编码替换为gbk或者latin-1适配不同网络设备的输出编码。

内容的提问来源于stack exchange,提问作者phil6564

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:06:00