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

时间:2010-09-10 21:24:34

标签: python windows windows-vista operating-system zipfile

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

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

wzip.extractall()

wzip.close()

os.remove( 'ExtractedFolder')

如果我在解释器中运行它,我会得到以下内容:

追踪(最近一次通话):   文件“”,第1行,in WindowsError:[错误5]访问被拒绝:'ExtractedFolder'

我在Windows Vista 32位上使用Python 2.6,我有点不知道为什么会发生这种情况。

2 个答案:

答案 0 :(得分:4)

可能的原因很多。

  1. 您需要使用os.rmdir删除目录
  2. 您需要清空文件夹 首先 - 记住,Windows命令 rmdir需要/S个选项 删除内容,Python可能会使用它。
  3. 是解压缩吗? 还使用档案的属性? 可以应用只读属性。
  4. 你在读那些东西吗? 文件夹,删除之前?你可以 没有关闭它。
  5. Windows可能会导致包含的文件名出现类似问题 不寻常的人物

答案 1 :(得分:1)

我在Windows上看到一个可能的问题,即您可以在此目录中打开一个文件。确保使用file.close()显式关闭已打开的所有文件(但示例代码看起来不错)。

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