我有一个松弛机器人,可以发布从网络设备发送的snmp消息。
例:
rtr-canada-1: BGP Peer 1.1.1.1 - Description: Test route - State: Idle
rtr-us-1: BGP Peer 1.1.1.2 - Description: Very Long name Industries - State: Established.
格式化每条消息的最佳方法是什么,以便"描述:"和"状态:"标记始终位于字符串中的相同位置,从而使所有内容统一?
例:
rtr-canada-1: BGP Peer 1.1.1.1 - Description: Test route - State: Idle
rtr-us-1: BGP Peer 1.1.1.2 - Description: Very Long name Industries - State: Established.
我正在考虑创建一个函数,在发布字符串之前测量字符串的长度,然后用空格填充消息,直到所有内容都推到位,但我想知道是否有更聪明的方法可以做到这一点。
谢谢
如如何用空格填写 Python 字符串中所述?Python对此有一些函数。看看:
https://docs.python.org/3/library/stdtypes.html#str.ljust
返回长度宽度字符串中左对齐的字符串。填充是使用指定的填充字符完成的(默认为 ASCII 空格(。如果宽度小于或等于 len(s(,则返回原始字符串。
https://docs.python.org/3/library/stdtypes.html#str.rjust
返回长度宽度字符串中右对齐的字符串。填充是使用指定的填充字符完成的(默认为 ASCII 空格(。如果宽度小于或等于 len(s(,则返回原始字符串。
谢谢先生,
这就是我所拥有的。它运作良好。
def formattage(text):
text = text.rsplit("$")
a = '{:{align}{width}}'.format(text[0], align='<', width='35')
b = '{:{align}{width}}'.format(text[1], align='<', width='29')
c = '{:{align}{width}}'.format(text[2], align='<', width='83')
d = '{:{align}{width}}'.format(text[3], align='<', width='33')
text = a+b+c+d
print text