【问题标题】:Python 3.6.1 - PermissionError: [Errno 13] Permission denied shown when trying to unzip a filePython 3.6.1 - PermissionError: [Errno 13] 尝试解压缩文件时显示权限被拒绝
【发布时间】:2017-10-26 09:48:04
【问题描述】:

我在尝试提取 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 it.

谁能帮帮我?提前致谢。

【问题讨论】:

  • Pycharm没有权限,尝试右键打开cmd,然后以管理员身份运行,然后进入python程序文件夹运行你的文件
  • @Exprator 感谢您的快速浏览。但是我正在通过 PyCharm 和 Selenium 做很多其他的事情。有没有办法获得许可?谢谢
  • 您可以在创建文件夹时授予权限。在 python 中检查 os 权限授予
  • @Exprator 权限问题不在于目录,而在于下载的 zip 文件。谢谢
  • 脚本中zip file 的文件名在哪里?

标签: python python-3.x file io


【解决方案1】:

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

对我有用的修复:

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

【讨论】:

    【解决方案2】:

    我猜是因为你的字典在C盘(windows盘,有时是禁止写入和擦除的),如果你换到D盘,可能就可以了。

    【讨论】:

      【解决方案3】:

      我在解压文件夹“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”
      • 或先将压缩包移动到另一个目录并在那里解压

      【讨论】:

        猜你喜欢
        • 2013-05-31
        • 1970-01-01
        • 2015-07-17
        • 2016-07-25
        • 2018-11-18
        • 1970-01-01
        • 1970-01-01
        • 2020-07-01
        • 2016-11-12
        相关资源
        最近更新 更多