在同一行打印2个值,从2个for循环

2024-05-18 18:57:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python编写一个程序,使用pysnmp通过snmp读取远程终端单元(RTU)中的值。在

问题是:在RTU中,每个接口都有2个传感器:温度和湿度。在

我可以打印,但在不同的时间。我需要做的是在同一行打印两个值。在

这就是我目前所拥有的。在

list = []

list1 = []

OID = "iso.3.6.1.4.1.3699.1.1.2.1.5.1.1.3."

UAD = "iso.3.6.1.4.1.3699.1.1.2.1.5.1.1.7."

for omega in range(1,33):
    UAD1 = UAD + str(omega)
    list.append(UAD1)

for altarf in range(1,33):
        OID1 = OID + str(altarf)
        list1.append(OID1)

# this value gives me the interface description
for auriga in lista1:
    sistema = cmdGen.getCmd(
    cmdgen.CommunityData('public'),
    cmdgen.UdpTransportTarget(( hostname, 161)),auriga
    )
    interfaz = sistema[3][0][1]
    print("Estado interfaz ") + str(interfaz)

# this value return the (temp / humidity) of sensors in  every interface
for Sculptor in lista:
    Sextans = cmdGen.getCmd(
    cmdgen.CommunityData('public'),
    cmdgen.UdpTransportTarget(( hostname, 161)),Sculptor
    )
    entrega = Sextans[3][0][1]
    entrega = float(entrega) * 0.1
    print "sensor " + str(entrega)

Tags: inforrangelistoidappendstromega
1条回答
网友
1楼 · 发布于 2024-05-18 18:57:49

您可以或多或少地使用zip函数组合这两个循环(和列表)。在

for auriga, Sculptor in zip(lista1, list):
    sistema = cmdGen.getCmd(
    cmdgen.CommunityData('public'),
    cmdgen.UdpTransportTarget(( hostname, 161)),auriga
    )
    interfaz = sistema[3][0][1]
    Sextans = cmdGen.getCmd(
    cmdgen.CommunityData('public'),
    cmdgen.UdpTransportTarget(( hostname, 161)),Sculptor
    )
    entrega = Sextans[3][0][1]
    entrega = float(entrega) * 0.1

    print "Estado interfaz " + str(interfaz),
    print "sensor " + str(entrega)

(注意第一个print语句后面的逗号。如果您愿意,您也可以将其组合在一个打印语句中:

^{pr2}$

相关问题 更多 >

    热门问题