【发布时间】:2021-09-02 08:06:54
【问题描述】:
我正在编写一个 Python 脚本,但在弄清楚如何获取我发送的命令的输出并将其存储在变量中时遇到了一些麻烦,但是对于该命令的整个输出 - 我只想存储某个单词之后的 1 个特定行的其余部分。
举例说明 - 假设我有一个命令输出数百行,这些行都代表特定产品的某些细节。
Color: Maroon Red
Height: 187cm
Number Of Seats: 6
Number Of Wheels: 4
Material: Aluminum
Brand: Toyota
#and hundreds of more lines...
我想解析我发送的命令的整个输出,打印上面的详细信息,并且只将产品的材料存储在一个变量中。
现在我有类似的东西:
child.sendline('some command that lists details')
variable = child.expect(["Material: .*"])
print(variable)
child.expect(prompt)
sendline 和 expect 提示部分正确列出了所有详细信息,但我无法弄清楚如何解析该命令的输出,查找显示“材料:”的部分,并且只将铝字符串存储在一个变量。
因此,与其让变量等于并打印当前打印的值 0,不如打印单词“Aluminum”。
有没有办法使用正则表达式来做到这一点?我正在尝试习惯使用正则表达式,所以我更喜欢使用它的解决方案,但如果没有,我仍然会很感激任何帮助!如果有帮助,我也在 vim 中编辑我的代码并使用 linux。
【问题讨论】:
标签: python regex parsing regex-lookarounds pexpect