[英]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.