将文件复制到现有目录会导致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
。