所以这是我的问题。 我有一个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,而且我为什么会这样呢?
许多原因可能。
os.rmdir
来删除目录 rmdir
需要一个/S
选项来删除内容,Python可能会使用它。 我在Windows上看到一个可能的问题,那就是你可以在这个目录下打开一个文件。 确保你使用file.close()
明确地关闭了所有已经打开的文件(尽管你的示例代码看起来file.close()
)。
另外,查看shutils.rmtree
可能会很有用:它可以递归地删除目录并捕获错误。