代码如下
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
简单地说,我想将生成器函数中的时间戳和加载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 ***************
{}