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

如何在python中解压后删除原始文件,python,Python,我有一些python代码来解压一个文件,然后删除它(原始文件),但我的代码捕获了一个异常:它无法删除该文件,因为它正在使用中 我认为问题在于,当删除代码运行时,解压操作尚未完成,因此引发异常。那么,如何在删除文件之前检查解压操作的运行状态 file = zipfile.ZipFile(lfilename) for filename in file.namelist(): file.extract(filename,dir) remove(lfilename) 请在删除文件之前尝试关闭该

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

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

file = zipfile.ZipFile(lfilename)
for filename in file.namelist():
    file.extract(filename,dir)
remove(lfilename)

请在删除文件之前尝试关闭该文件

file = zipfile.ZipFile(lfilename)
for filename in file.namelist():
    file.extract(filename,dir)

file.close()

remove(lfilename)

请在删除文件之前尝试关闭该文件

file = zipfile.ZipFile(lfilename)
for filename in file.namelist():
    file.extract(filename,dir)

file.close()

remove(lfilename)

ZipFile的文档中说:

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

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

with zipfile.ZipFile(lfilename) as file:
    file.extract(filename, dir)
remove(lfilename)
with ZipFile('lfilename') as file:
    for filename in file.namelist():
        file.extract(filename,dir)
remove(lfilename)
使用with语句的一个优点是文件会自动关闭。它也很漂亮(简短、简洁、有效)


另请参见ZipFile的文档说明:

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

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

with zipfile.ZipFile(lfilename) as file:
    file.extract(filename, dir)
remove(lfilename)
with ZipFile('lfilename') as file:
    for filename in file.namelist():
        file.extract(filename,dir)
remove(lfilename)
使用with语句的一个优点是文件会自动关闭。它也很漂亮(简短、简洁、有效)


另请参见。

您必须先关闭该文件

    file.close()
    remove(lfilename)
或者,您可以执行以下操作:

with zipfile.ZipFile(lfilename) as file:
    file.extract(filename, dir)
remove(lfilename)
with ZipFile('lfilename') as file:
    for filename in file.namelist():
        file.extract(filename,dir)
remove(lfilename)

您必须先关闭该文件

    file.close()
    remove(lfilename)
或者,您可以执行以下操作:

with zipfile.ZipFile(lfilename) as file:
    file.extract(filename, dir)
remove(lfilename)
with ZipFile('lfilename') as file:
    for filename in file.namelist():
        file.extract(filename,dir)
remove(lfilename)