我试图用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()
它们进行复制。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句