我无法删除我刚从python中的zip文件中提取的文件夹

所以这是我的问题。 我有一个Python脚本,需要一个zipfile并提取其内容。 然后基于一些限制,我将尝试删除刚刚提取内容的文件夹。 出于某种原因,我得到一个错误,WindowsError:[错误5]访问被拒绝:'Foldername',当我尝试删除该文件夹。 简单的代码如下所示

wzip = zipfile.ZipFile('zipfile.zip')

wzip.extractall()

wzip.close()

os.remove( 'ExtractedFolder')

如果我在解释器中运行这个,我会得到以下结果:

回溯(最近的最后一次调用):WindowsError中的文件“”,第1行:[错误5]访问被拒绝:“ExtractedFolder”

我在Windows Vista 32-bit上使用Python 2.6,而且我为什么会这样呢?

许多原因可能。

  1. 您需要使用os.rmdir来删除目录
  2. 您需要先清空文件夹 – 请记住,Windows命令rmdir需要一个/S选项来删除内容,Python可能会使用它。
  3. 解压缩是否也使用存档的属性? 只读属性可能被应用。
  4. 在删除之前,您是否正在读取该文件夹中的任何内容? 你可能没有关闭它。
  5. Windows可能会导致包含不寻常字符的文件名类似的问题

我在Windows上看到一个可能的问题,那就是你可以在这个目录下打开一个文件。 确保你使用file.close()明确地关闭了所有已经打开的文件(尽管你的示例代码看起来file.close() )。

另外,查看shutils.rmtree可能会很有用:它可以递归地删除目录并捕获错误。