Python 预计正则表达式匹配包含在 b' '
Python pexpect regex match is encased in b' '
我是 Python 的新手,可以期待,但不是 TCL 的期待。我有一个超级简单的脚本,它通过 SSH 连接到 Cisco 路由器并查询 arp table 以获得 mac 地址。我想检索相应的IP地址。以下是感兴趣的行:
branchConnection.sendline('sh ip arp | i 00c0.b7')
time.sleep(1)
branchConnection.expect('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
print(str(branchConnection.match.group(0)))
它打印 b'10.198.7.10'
当我查看 pexpect.pty_spawn.spawn 对象时,它显示:
buffer (last 100 chars): b' 2 00c0.b790.b8c6 ARPA GigabitEthernet0/0.100\r\nRTR-01#'
before (last 100 chars): b'sh ip arp | i 00c0.b7\r\nInternet '
after: b'10.198.7.10'
所有内容都包含在 b' '
我假设这是正常的?有人可以解释这是怎么回事吗?我找不到任何可以解释这意味着什么的东西。我怎样才能预期 return 没有 b'' 的 IP 地址?
b
表示字节。如果你需要一个字符串,你可以使用 decode
。你需要知道它使用的是什么编码,但如果你不知道,你可以尝试 utf-8
这是很常见的
print(branchConnection.match.group(0).decode("utf-8"))
>>> b'10.198.7.10'.decode("utf-8")
'10.198.7.10'
我是 Python 的新手,可以期待,但不是 TCL 的期待。我有一个超级简单的脚本,它通过 SSH 连接到 Cisco 路由器并查询 arp table 以获得 mac 地址。我想检索相应的IP地址。以下是感兴趣的行:
branchConnection.sendline('sh ip arp | i 00c0.b7')
time.sleep(1)
branchConnection.expect('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
print(str(branchConnection.match.group(0)))
它打印 b'10.198.7.10'
当我查看 pexpect.pty_spawn.spawn 对象时,它显示:
buffer (last 100 chars): b' 2 00c0.b790.b8c6 ARPA GigabitEthernet0/0.100\r\nRTR-01#'
before (last 100 chars): b'sh ip arp | i 00c0.b7\r\nInternet '
after: b'10.198.7.10'
所有内容都包含在 b' '
我假设这是正常的?有人可以解释这是怎么回事吗?我找不到任何可以解释这意味着什么的东西。我怎样才能预期 return 没有 b'' 的 IP 地址?
b
表示字节。如果你需要一个字符串,你可以使用 decode
。你需要知道它使用的是什么编码,但如果你不知道,你可以尝试 utf-8
这是很常见的
print(branchConnection.match.group(0).decode("utf-8"))
>>> b'10.198.7.10'.decode("utf-8")
'10.198.7.10'