如何用空格填充字符串以使一系列消息具有相同的长度



我有一个松弛机器人,可以发布从网络设备发送的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

最新更新