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

时间:2017-05-26 14:51:45

标签: python

我有一个slackbot发布从网络设备发送的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.

我想在发布之前创建一个测量字符串长度的函数,然后用空格填充消息,直到所有内容都被推到位但我不知道是否有更聪明的方法此

谢谢,

2 个答案:

答案 0 :(得分:0)

How can I fill out a Python string with spaces?中所述,Python有一些功能。看看:

https://docs.python.org/3/library/stdtypes.html#str.ljust

  

以长度为一的字符串返回左对齐的字符串。使用指定的fillchar完成填充(默认为ASCII空间)。如果width小于或等于len(s),则返回原始字符串。

https://docs.python.org/3/library/stdtypes.html#str.rjust

  

以长度为一的字符串返回右对齐的字符串。使用指定的fillchar完成填充(默认为ASCII空间)。如果width小于或等于len(s),则返回原始字符串。

答案 1 :(得分:0)

先生,谢谢你,

这就是我所拥有的。它运作良好。

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