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

Python脚本发送ZPL标签至Zebra ZD420打印机连接报错求助

解决Python发送ZPL到Zebra打印机的连接错误

你的代码里有几个直接导致连接失败的错误,逐个修正如下:

  • 删除多余的bind操作:作为客户端连接打印机,不需要执行s.bind((host, port))——这是服务器端用来绑定监听端口的代码,客户端执行这行只会引发连接异常,直接删掉。
  • 文件名添加引号:open(label.prn, 'r')里的label.prn必须用引号包裹成字符串,写成open('label.prn', 'r'),否则Python会把它当成未定义的变量,触发NameError。
  • readlines补全括号:lines = h.readlines要改成lines = h.readlines(),前者只是引用方法本身,后者才是执行方法读取文件所有行,不然遍历的时候会出错。
  • 修正send方法参数:mysocket.send(b, arr)完全错误,send只需要传入字节对象,改成mysocket.send(arr)即可,多余的b直接删掉。
  • 优化文件读取方式(可选):ZPL文件建议用二进制模式读取发送,避免编码问题,而且一次性读取发送比逐行处理更高效。

修正后的完整代码:

import socket              

mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)         
host = "192.168.1.35" 
port = 9100   

try:
    mysocket.connect((host, port))  # 连接打印机
    # 二进制读取文件并一次性发送,确保数据完整
    with open('label.prn', 'rb') as h:
        zpl_content = h.read()
        mysocket.sendall(zpl_content)
    mysocket.close() 
except Exception as e:
    # 打印具体错误信息,方便后续排查
    print(f"错误详情: {str(e)}")

另外,把except:改成except Exception as e并打印具体错误,能帮你更快定位其他潜在问题,比如文件路径不对、打印机端口不通等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:20:28