Python - 尝试复制文件时 Errno 13 权限被拒绝

Qui*_*ips 3 python file-copying

我正在尝试用 Python 制作一个程序,将我的闪存驱动器上的文件(字母 D:)复制到我硬盘驱动器上的一个文件夹中,但我收到了PermissionError: [Errno 13] Permission denied: '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
Run Code Online (Sandbox Code Playgroud)

copyfile()函数运行并返回错误之前,一切似乎都运行良好。我尝试用文件的目标替换getsource(),它返回了相同的权限错误,除了new_folder目录。

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

Har*_*son 5

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

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

以下是每个文件的文档:

os.listdir()(您将把完整的文件路径传递给这个函数)

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

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