Python - 尝试复制文件时出现错误 13 权限被拒绝

Python - Errno 13 Permission denied when trying to copy files

我正在尝试在 Python 中制作一个程序,将我的闪存驱动器(字母 D:)上的文件复制到我硬盘驱动器上的一个文件夹,但我收到 PermissionError: [ Errno 13] 权限被拒绝:'D:'.

我的代码有问题的部分如下:

# Copy files to folder in current directory
def copy():
    source = getsource()

    if source != "failure":

        copyfile(source, createfolder())
        wait("Successfully backup up drive"
             "\nPress 'Enter' to exit the program")

    else:
        wait("No USB drive was detected"
             "\nPress 'Enter' to exit")

# Create a folder in current directory w/ date and time
def createfolder():
    name = strftime("%a, %b %d, %Y, %H.%M.%S", gmtime())
    dir_path = os.path.dirname(os.path.realpath(__file__))
    new_folder = dir_path + "\" + name
    os.makedirs(new_folder)

return new_folder

一切似乎 运行 都很好,直到 copyfile() 函数 运行 出现 returns 错误。 我尝试将 getsource() 替换为文件的目标,但它返回了相同的权限错误,但 new_folder 目录除外.

我已经阅读了其他几篇文章,但其中 none 似乎与我的案例相关。我也对这两个位置拥有完全的管理员权限。 任何帮助将不胜感激!

正如我在上面的评论中所述,您似乎正试图打开目录 D:,就好像它是一个文件一样,但这是行不通的,因为它不是文件, 这是一个目录。

您可以使用 os.listdir() 列出所需目录中的所有文件,然后使用 shutil.copy() 复制文件。

以下是每个文件的文档:

os.listdir()(您将向此函数传递完整的文件路径)

shutil.copy()(您会将每个文件传递给此函数)

本质上,您会将目录中的所有文件存储在一个变量中,例如 all_the_files = os.listdir(/path/to/file),然后通过执行 for each_file in all_the_files: 之类的操作遍历 all_the_files,然后使用 shutil.copy() 随意复制。

如果您要复制整个目录及其内容,则可以使用 shutil.copytree(source, destination)