从生成函数映射两个屈服变量

2024-04-20 06:16:19 发布

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

代码如下

def filee(filename):
    cpu = "iso.3.6.1.4.1.2021.10.1.3.1 = STRING:"
    newline = "\n"
    quotes = '"\n'
    file = open(filename)
    lineno = 0
    for line in file:
        lineno += 1
        linestriptime = line[line.find("(")+1:line.find(")")]
        linestripload = (line.strip(cpu + newline + '\n').replace('\"', ''))
        v = lineno % 2
        if v == 0:
            load = float(linestripload)
            yield (timestamp, load)
        else:
            timestamp = int(linestriptime)

listyield = filee("snmpfile.txt")

mappedload = {timestamp : load for (timestamp, load) in listyield}

print mappedload

简单地说,我想将时间戳和load yield变量从生成器函数映射到一起,但是print mappedload命令总是给我一个空字典。为什么会发生这种情况?如何将这两个变量映射到一起?你知道吗

编辑:我已经包括了这行代码,打印收益率值工作得很好

print ("**************** TRAP LISTYIELD ***************")
for (timestamp, load) in listyield:
    print(timestamp, load)
print ("**************** END OF TRAP LISTYIELD ***************")

结果

**************** TRAP LISTYIELD ***************
(201607, 0.62)
(203174, 0.55)
(203336, 0.55)
(203479, 0.51)
(203611, 0.51)
(203731, 0.51)
**************** END OF TRAP LISTYIELD ***************
{}

Tags: 代码inforlineloadcpufilenametimestamp