文件夹被解释为文件

时间:2018-07-11 11:02:48

标签: python python-2.7 directory document shutil

我正在尝试从现有文件夹复制word文件并将其复制到新的输出文件夹。在此输出文件夹中,我再次根据用户ID创建了不同的文件夹,并且应在其中为每个用户放置word文件。但是,在复制此文件时,我遇到了一个问题,因为id文件夹被解释为 一份文件。输出文件图片如下:

the output file picture is attached here

我正在为此使用shutil模块,而我编写的代码是:

id = tup2[i] 
shutil.copy('C:\\Python27\\mydoc.docx', ('C:\\Python27\\Output\\%s') %(id))

1 个答案:

答案 0 :(得分:4)

这是预期的。如果目标文件夹存在,则copy会附加文件的基本名称,然后将文件复制到目标文件夹中。

  

将文件src复制到文件或目录 dst。 src和dst应该是字符串。 如果dst指定了目录,则文件将使用src中的基本文件名复制到dst中。

如果没有,则copy假定您要复制并更改名称(Unix cp命令的工作原理完全相同)。

一种解决方法是事先创建目录/确保它在这里:

import os,shutil
output_dir = os.path.join(r'C:\Python27\Output',str(id))
if not os.path.isdir(output_dir):
    os.mkdir(output_dir)
shutil.copy(r'C:\Python27\mydoc.docx', output_dir)

(最好将os.path中的适当路径处理功能和原始字符串用于垃圾窗口路径)