2010-09-10 59 views
1

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

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

wzip.extractall()

wzip.close()

os.remove(” ExtractedFolder')

如果我在解释我碰到下面这条命令:

回溯(最后最近一次调用): 文件‘’,第1行,在 WindowsError:[错误5]访问被拒绝:'ExtractedFolder'

我在Windows Vista 32位上使用Python 2.6,我对此感到莫名其妙。

回答

4

可能的原因很多。

  1. 您需要使用os.rmdir删除目录
  2. 你需要清空文件夹 第一 - 记住,Windows命令 rmdir需要/S选项 删除的内容,和Python可能使用了。
  3. 解压缩 是否也使用存档的属性? 只读属性可能会应用。
  4. 在删除之前,您是否正在读取该文件夹中的任何文件?您可能不会关闭它。
  5. 的Windows可能会导致含 特殊字符
+0

我相信你对1和2是正确的。os.remove是错误的命令和os.rmdir将工作以及除了文件夹不是空的事实。 – TinyGrasshopper 2010-09-13 21:20:20

1

我看到在Windows上可能出现的问题,这是你可以有此目录中打开的文件的文件名类似的问题。确保您使用file.close()明确关闭了所有已打开的文件(尽管您的示例代码看起来不错)。

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

+0

谢谢。由于该文件夹不是空的,我应该使用shutil.rmtree – TinyGrasshopper 2010-09-13 21:21:15

相关问题