Python 3.6.1 - PermissionError:\[Errno 13\] 尝试解压缩文件时显示权限被拒绝

新手上路,请多包涵

我在尝试提取 zip 文件时遇到 PermissionError 。我已经在 SO 上进行了很多讨论,但仍然无法解决我的问题。

目前我正在 Windows 8 机器上使用 Python 3.6.1。我通过以下代码创建了一个新目录:

 import os,zipfile

newpath = 'C:\\home\\vivvin\\shKLSE'
#newpath = r'C:\\home\\vivvin\\shKLSE'
if not os.path.exists(newpath):
os.makedirs(newpath)

接下来,我下载了一个 zip 文件并保存到 newpath 目录中。

现在,我正在尝试提取要提取到 newpath 目录中的 zip 文件中的所有文件(10 个 csv 文件)。为此,我编写了以下代码:

 import os,zipfile

newpath = 'C:\\home\\vivvin\\shKLSE'
path_to_zip_file = newpath
directory_to_extract_to = newpath
#zip_ref = zipfile.ZipFile(newpath, 'r')
zip_ref = zipfile.ZipFile(newpath, 'w')
zip_ref.extractall(newpath)
zip_ref.close()

但每次我都收到以下错误:

 Traceback (most recent call last):
File "C:/Users/AtechM_03/PycharmProjects/Webinar/SeleniumScripts/extract.py", line 6, in <module>
zip_ref = zipfile.ZipFile(newpath, 'w')
File "C:\Python\lib\zipfile.py", line 1082, in __init__
self.fp = io.open(file, filemode)
PermissionError: [Errno 13] Permission denied: 'C:\\home\\vivvin\\shKLSE'

我手动观察了 zip 文件的属性,似乎有一条安全消息以及一个 Unblock 按钮。截至目前,我不知道如何 Unblock 它。 解锁按钮

谁能帮帮我吗?提前致谢。

原文由 undetected Selenium 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

我在尝试写入文件时遇到了类似的问题。

对我有用的修复:

右键单击您的 PyCharm 应用程序并以管理员身份运行它。

原文由 Emmanuel 发布,翻译遵循 CC BY-SA 3.0 许可协议

解压缩文件夹“temp.zip”时遇到同样的错误,只提取文件。在我的例子中,我有一个目录,其中包含一个文件夹“temp”和一个名为“temp.zip”的 zip 文件。

 def unzip(path, filename):
    with ZipFile(path, 'r') as zipobj:
        zipobj.extract(member=filename)

当我运行这个文件时,我收到错误信息:

     ...
   "test.py", line 259, in unzip
        with ZipFile(path, 'r') as zipobj:
      File "C:\Program Files\Python36\lib\zipfile.py", line 1090, in __init__
        self.fp = io.open(file, filemode)
    PermissionError: [Errno 13] Permission denied

问题是, zipobj.extract() 需要创建一个名为 temp 的文件夹并提取内容(临时)。但是这个文件夹已经存在了。 –> 我得到了权限被拒绝的错误。

解决方案

  • 要么删除文件夹“temp”
  • 或先将 zip 移动到另一个目录并在那里解压缩

原文由 LeFish 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题