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