检查在Python中打开了哪些文件

检查在Python中打开了哪些文件,第1张

检查在Python中打开了哪些文件

我最终在程序的入口点包装了内置文件对象。我发现我没有关闭记录仪

import ioimport sysimport builtinsimport tracebackfrom functools import wrapsdef opener(old_open):    @wraps(old_open)    def tracking_open(*args, **kw):        file = old_open(*args, **kw)        old_close = file.close        @wraps(old_close)        def close(): old_close() open_files.remove(file)        file.close = close        file.stack = traceback.extract_stack()        open_files.add(file)        return file    return tracking_opendef print_open_files():    print(f'### {len(open_files)} OPEN FILES: [{", ".join(f.name for f in open_files)}]', file=sys.stderr)    for file in open_files:        print(f'Open file {file.name}:n{"".join(traceback.format_list(file.stack))}', file=sys.stderr)open_files = set()io.open = opener(io.open)builtins.open = opener(builtins.open)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5587753.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存