如何在python中解压后删除原始文件

Tim*_*Tim 1 python

我有一些 python 代码来解压缩文件,然后删除它(原始文件),但我的代码捕获异常:它无法删除该文件,因为它正在使用中。

我认为问题在于,当删除代码运行时,解压缩操作尚未完成,因此引发异常。那么,在删除文件之前如何检查解压缩操作的运行状态?

file = zipfile.ZipFile(lfilename)
for filename in file.namelist():
    file.extract(filename,dir)
remove(lfilename)
Run Code Online (Sandbox Code Playgroud)

rke*_*rsh 5

ZipFile 的文档说:

ZipFile 也是一个上下文管理器,因此支持with语句。

因此,我建议执行以下操作:

with zipfile.ZipFile(lfilename) as file:
    file.extract(filename, dir)
remove(lfilename)
Run Code Online (Sandbox Code Playgroud)

使用 with 语句的优点之一是文件会自动关闭。它也很漂亮(简短、简洁、有效)。

另请参阅PEP 343