簡體   English   中英

Python-嘗試復制文件時Errno 13權限被拒絕

[英]Python - Errno 13 Permission denied when trying to copy files

我試圖用Python制作一個程序,將閃存驅動器(字母D :)上的文件復制到硬盤驅動器上的文件夾中,但出現PermissionError:[Errno 13] Permission拒絕:'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()函數運行,並在其中返回錯誤。 我嘗試將getsource()替換為文件的目標,並且它返回了相同的權限錯誤,但new_folder目錄除外。

我讀過其他幾篇文章,但似乎與我的情況無關。 我也對這兩個位置擁有完全的管理員權限。 任何幫助將不勝感激!

正如我在上面的評論中所述,似乎您正在嘗試打開目錄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()復制給您。

如果要復制整個目錄及其內容,則可以使用shutil.copytree(source, destination)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM