#!/usr/bin/python #this is model import dbm import time import os class computation_rate: def __init__(self,defind_namedb,value): self.path = os.path.split(os.path.realpath(__file__))[0] + ‘/‘ + defind_namedb self.value = value def computation_rate(self): db = dbm.open(self.path, ‘c‘) checklistdbm = [] for key in db.keys(): checklistdbm.append(key) db.close() now_time = time.time() if len(checklistdbm) == 0: db = dbm.open(self.path, ‘c‘) db[str(now_time)] = str(self.value) db.close() return sys.exit(0) elif len(checklistdbm) != 0: db = dbm.open(self.path, ‘c‘) old_time = float(checklistdbm[0]) old_val = float(db[checklistdbm[0]]) del db[checklistdbm[0]] db[str(now_time)] = str(self.value) db.close() mean_rate = (self.value - old_val) / (now_time - old_time) return mean_rate if __name__ != ‘__main__‘: import inspect import sys class ccomputation_rate(computation_rate): def __init__(self,value): self.path = os.path.split(os.path.realpath(__file__))[0] + ‘/‘ + inspect.stack()[1][1].replace(‘.py‘,‘.tempfile‘) self.value = value #call model #!/usr/bin/python import mean_rate import sys p = mean_rate.ccomputation_rate(int(sys.argv[1])) print p.computation_rate() #调用模块和模块文件在相同目录下 #模块目录下会生出 以调用脚本命名的 dbm 临时文件目录, #例如调用脚本名字为 example.py ,则在当前目录下会生成 example.tempfile.dir,example.tempfile.pag,这样可以多个脚本调用 #调用脚本的参数为变化的数值,每次调用输入想计算的数值,时间间隔为调用时间间隔, #这样得出就是在调用间隔内数值变化的平均数。
原文:http://bobo123.blog.51cto.com/3133979/1895692