列出所有当前打开的文件句柄?[重复]
问题内容:
这个问题已经在这里有了答案 :
10年前关闭。
可能重复:
检查在Python中打开了哪些文件
你好,
是否可以获取所有当前打开的文件句柄的列表,我假设它们存储在环境中的某个位置。
我对theis函数感兴趣,因为我想安全地处理出现致命错误时打开的所有文件,即关闭文件句柄并用原始文件替换可能损坏的文件。
我可以进行处理,但是不知道打开了哪些文件句柄,因此无法实现这个想法。
顺便说一句,初始化文件句柄时,可以通过其他导入的方法继承吗?
谢谢
问题答案:
这样做的 好 方法是修改代码以跟踪打开文件的时间:
def log_open( *args, **kwargs ):
print( "Opening a file..." )
print( *args, **kwargs )
return open( *args, **kwargs )
然后,使用log_open
代替open
打开文件。您甚至可以做一些更棘手的事情,例如修改File
类以记录自身。上面的链接问题中已涉及到这一点。
可能涉及垃圾收集器或查找之类的东西 令人作呕,肮脏__dict__
,但是除非您 确实非常认真地 必须 这样做,否则您不希望这样做。