[[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组合所有这些数据?或者有更简单的方法吗?
如果我理解你的问题,你有一些你想用可变参数复制的文本。如果是这样,这是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))
'\n'. join(zip([inputs] * 97, name2, oid2))
带输入的第一个表达式是将该字符串转换为单个元素数组,然后将其乘以97使该字符串在数组中重复97次。