gpt4 book ai didi

Python文件缓存

转载 作者:太空狗 更新时间:2023-10-30 00:03:55 25 4
gpt4 key购买 nike

我正在从文件创建一些对象(来自模板 xsd 文件的验证器,碰巧将其他 xsd 文件绘制在一起),我想在磁盘上的文件更改时重新创建这些对象。

我可以创建类似这样的东西:

def getobj(fname, cache = {}):
try:
obj, lastloaded = cache[fname]
if lastloaded < last_time_written(fname):
# same stuff as in except clause
except KeyError:
obj = create_from_file(fname)
cache[fname] = (obj, currenttime)

return obj

但是,如果存在,我更愿意使用其他人的测试代码。是否有现有的库可以执行类似的操作?

更新:我使用的是 python 2.7.1。

最佳答案

您的代码(包括缓存逻辑)看起来不错。

考虑将 cache 变量移到函数定义之外。这将使添加其他功能以清除或检查缓存成为可能。

如果您想查看执行类似操作的代码,请查看 filecmp 的源代码模块:http://hg.python.org/cpython/file/2.7/Lib/filecmp.py有趣的部分是 stat module用于确定文件是否已更改。这是签名函数:

def _sig(st):
return (stat.S_IFMT(st.st_mode),
st.st_size,
st.st_mtime)

关于Python文件缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9854672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com