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

将文件复制到现有目录会导致IOError [错误21]是一个目录,第1张

我收到此错误:

IOError [Error 21] is a directory

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

shutil.copyfile(src, dst)

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

最佳答案:

3 个答案:

答案 0 :(得分:8)

你使用了错误的功能。你可能想要“复制”:

https://docs.python.org/2/library/shutil.html

答案 1 :(得分:3)

你已经在问题中回答了自己。

dst应该是复制文件的路径。因此,如果您要将文件复制到/var/lib/my/并且文件名为f1,则dst应为/var/lib/my/f1.txt

尝试按here

的建议john-estess使用shutil.copy
shutil.copy(src, dst)

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

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

假设src是您要复制的文件的路径,例如/var/log/apache/access.logdst是要复制文件的目录的路径,例如{{ 1}}然后新目的地为/var/lib/my

答案 2 :(得分:0)

我要疯了,直到我弄清楚了。请参阅代码段,以查看源是文件的路径,目标是文件的路径(直到运行此功能,该路径才存在)。

for file in orig_files:
    shutil.copyfile(SOURCE_PATH   file_name, DEST_PATH   file_name)
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复