我有一些 python 代码来解压缩文件,然后删除它(原始文件),但我的代码捕获异常:它无法删除该文件,因为它正在使用中。
我认为问题在于,当删除代码运行时,解压缩操作尚未完成,因此引发异常。那么,在删除文件之前如何检查解压缩操作的运行状态?
file = zipfile.ZipFile(lfilename)
for filename in file.namelist():
file.extract(filename,dir)
remove(lfilename)
Run Code Online (Sandbox Code Playgroud)
ZipFile 的文档说:
ZipFile 也是一个上下文管理器,因此支持with语句。
因此,我建议执行以下操作:
with zipfile.ZipFile(lfilename) as file:
file.extract(filename, dir)
remove(lfilename)
Run Code Online (Sandbox Code Playgroud)
使用 with 语句的优点之一是文件会自动关闭。它也很漂亮(简短、简洁、有效)。
另请参阅PEP 343。
| 归档时间: |
|
| 查看次数: |
8971 次 |
| 最近记录: |