将文件复制到现有目录会导致IOError [错误21]是目录


问题内容

我收到此错误:

IOError [Error 21] is a directory

当我尝试将文件复制到现有目录时。我这样做是这样的:

shutil.copyfile(src, dst)

其中src是文件,dst是现有目录。我做错了什么?


问题答案:

您已经回答了自己的问题。

dst应该是复制文件的路径。所以,如果你要复制的文件/var/lib/my/,你的文件被称为f1那么dst应该是/var/lib/my/f1.txt

尝试使用shutil.copy的建议在这里约翰-
estess

shutil.copy(src, dst)

或尝试使用以下代码段修复此问题

shutil.copyfile(src, '%s/%s' % (dst, src.split('/')[-1]))

假设src是要复制的文件的路径(例如)/var/log/apache/access.log,并且dst是要在其中复制文件的目录的路径,例如,/var/lib/my新的目标是/var/lib/my/access.log