[[inputs.snmp.field]]
name = "esxi-cpuload1"
oid = ".1.3.6.1.2.1.25.3.3.1.2.1"
我需要在“ cpuload”和我的oid之后以数字为增量复制96次,因此例如esxi-cpuload2,cpuload3等,以及我的oid为.2,.3,.4等。
到目前为止,我已经能够使用以下两个列表来做到这一点:
inputs = "[[inputs.snmp.field]]"
name = "esxi-cpuload"
oid = ".1.3.6.1.2.1.25.3.3.1.2."
name2 = [name+str(i) for i in range(97)]
oid2 = [oid+str(i) for i in range(97)]
这给了我两个带有数字的列表(文本的第一行不需要更改)。但是,现在如何使用Python合并所有这些数据?还是有一种更简单的方法?
答案 0 :(得分:1)
如果我理解您的问题,那么您想使用可变参数复制一些文本。如果是这样,那么这是str.format()的好用例。
FMT = '''
[[inputs.snmp.field]]
name = "esxi-cpuload{i}"
oid = ".1.3.6.1.2.1.25.3.3.1.2.{i}"
'''
text = ''.join(FMT.format(i = i) for i in range(1, 96))
答案 1 :(得分:0)
'\n'. join(zip([inputs] * 97, name2, oid2))
带有输入的第一个表达式是将字符串转换为单个元素数组,然后将其乘以97,使该字符串在数组中重复97次。