【问题标题】:PermissionError: [Errno 13] Permission denied @ PYTHONPermissionError: [Errno 13] Permission denied @ PYTHON
【发布时间】:2017-02-12 03:17:15
【问题描述】:

我正在尝试将文件从一个文件夹复制到另一个文件夹,但我收到“PermissionError: [Errno 13] Permission denied”。我在我的主目录中工作,我是 PC 的管理员。浏览了许多其他以前的帖子..尝试了我所知道的所有选项(编程新手)...需要一些帮助。

import os
import shutil

src = "C:\\Users\\chzia\\Scripts\\test" # the file lab.txt is in this folder that needs to be copied to testcp folder.
dst = "C:\\Users\\chzia\\Scripts\\testcp"

for file in os.listdir(src):
  src_file = os.path.join(src, file)
  dst_file = os.path.join(dst, file)
  #shutil.copymode(src, dst) # i have tried these options too same error
  #shutil.copyfile(src, dst) # i have tried these options too same error
  shutil.copy(src, dst)

我的目标是创建一个 .exe,将文件从网络位置复制到运行 .exe 的 PC 上的特定文件夹中。 提前感谢所有的支持和帮助。

【问题讨论】:

  • 包括确切的回溯——否则,当操作系统拒绝其请求时,我们不知道shutil.copy() 正在执行什么操作,并且无法判断任何给定的答案是否合理。如果您可以尝试自己手动(即从命令行)执行该操作并验证它是否有效,那也会很有帮助。

标签: python shutil


【解决方案1】:

也许尝试使用 shutil.copyfile 代替:

shutil.copyfile(src, dst)

Why would shutil.copy() raise a permission exception when cp doesn't?上的类似老话题

【讨论】:

  • 我收到了 PermissionErrorshutil.copyfile
【解决方案2】:

我确定我迟到了,但我遇到了同样的问题。

我注意到,就我而言,问题在于子文件夹已经存在。 如果我一开始就删除文件夹(在我的情况下没问题)。

import os
import shutil    

dst = "C:\\Users\\chzia\\Scripts\\testcp" # target folder


def checkFolder(path):

    try:
        os.stat(path)
        shutil.rmtree(path)
    except:
        os.mkdir(path)


checkFolder(dst)

【讨论】:

    【解决方案3】:

    如果您在 Google 上搜索了异常并在此处结束,请记住在使用来自 shutilcopycopyfile 时提供绝对/完整路径。例如,

     abs_src_path = os.path.abspath(relative_file_path)
     abs_dst_path = os.path.abspath(relative_dst_path)
     shutil.copy(abs_src_path , abs_dst_path)
    

    上面的问题已经完成了,但你可能是被错误信息误导的人。

    【讨论】:

      猜你喜欢
      • 2019-11-27
      • 1970-01-01
      • 2019-07-31
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 2018-08-18
      相关资源
      最近更新 更多