python从文件中读取数据并计算结果

时间:2014-06-03 10:32:56

标签: python

我想在python文件中存储一些值,如blew 这是我的abc.py文件

{
  21:"This field is required",
  22:"Value can't be null",
  23:"other custom message",
}

然后我想从python函数中的给定字符串计算代码。 例如:

def calculate_code(error_message):
    #process error_message and read data from abc.py file
    #calculate error_code
    return eror_code

就好像我有error_message ="值不能为空"然后我会得到error_code = 22。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

一个明智的解决方案是从消息到错误代码定义缓存类(基于字典)。这不是一个完整的解决方案,但这提供了一个框架:

从datetime导入日期时间 来自os import stat 进口时间

class Cache(object):
    def __init__(self, filename):
        self._filename = filename
        self._populate_cache()

    def __getitem__(self, name):
        if self._check_file_updated():
           self._populate_cache()
        return self._cache[name]

    def _populate_cache(self):
        self._populate_time = time.mktime(datetime.now().timetuple())
        self._cache = read_file_as_dict(self._filename)
        print "debug: updated cache"

    def _check_file_updated(self):
        return stat(self._filename).st_mtime > self._populate_time


def read_file_as_dict(filename):
    # needs an implementation: just simulating
    return { "Blown up": 25, "Warning": 31 }

用法:

cache = Cache("test")
>>> cache["Blown up"]
25
>>> cache["Blown up"]
25

现在我触摸"测试"文件:

>>> cache["Blown up"]
debug: updated cache
25