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

如何在Python中将Telnet输出存入变量并提取指定模拟输入数值

Python提取Telnet返回值中指定数值的方案
  • 依赖说明:无需安装第三方库,直接使用Python内置的telnetlib(负责Telnet连接交互)和re(负责正则匹配提取)即可实现
  • 完整实现代码:
import telnetlib
import re

# 按需修改以下配置参数
TELNET_HOST = "设备实际IP地址"
TELNET_PORT = 23
TELNET_TIMEOUT = 10
# 要执行的Telnet查询命令,按设备实际支持的命令调整
QUERY_COMMAND = b"你的查询命令\r\n"

# 建立Telnet连接,获取返回文本
tn = telnetlib.Telnet(TELNET_HOST, TELNET_PORT, TELNET_TIMEOUT)
# 若设备需要账号密码登录,在此处补充登录逻辑,示例如下:
# tn.read_until(b"Username: ")
# tn.write(b"你的账号\r\n")
# tn.read_until(b"Password: ")
# tn.write(b"你的密码\r\n")

# 发送查询命令,读取全部返回结果
tn.write(QUERY_COMMAND)
response_text = tn.read_all().decode("utf-8")
tn.close()

# 正则匹配提取目标数值
match_result = re.search(
    r'External alarm contact 2.*?Analog input value\s*([\d.]+)',
    response_text,
    flags=re.S
)
if match_result:
    # 提取结果转浮点型存入变量
    analog_value = float(match_result.group(1))
    print(f"提取到的目标数值:{analog_value}")
else:
    print("未匹配到目标值,请检查返回文本格式或正则规则")
  • 逻辑说明:正则中re.S参数允许.匹配换行符,适配目标字段跨行的场景,([\d.]+)用来捕获动态变化的浮点数值,若设备返回文本格式有调整,只需修改正则匹配规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:45:01