2016-11-09 51 views
0

如果我试图把文件复制到一个子目录,如:shutil.copy到子目录

dirname = os.path.join(sys.argv[1], optdir) 
print("dirname: "+dirname) 
if not os.path.exists(dirname): 
    os.makedirs(dirname) 
shutil.copy(files, dirname) 

shutil.copy是给错误为:

dirname: ./8/opt2 
Traceback (most recent call last): 
    File "/home/rudra/bin/latres.py", line 84, in <module> 
    shutil.copy(files, dirname) 
    File "/usr/lib64/python3.5/shutil.py", line 234, in copy 
    dst = os.path.join(dst, os.path.basename(src)) 
    File "/usr/lib64/python3.5/posixpath.py", line 139, in basename 
    i = p.rfind(sep) + 1 
AttributeError: 'list' object has no attribute 'rfind' 

这可能是由于dst = os.path.join(dst, os.path.basename(src))在错误信息中,所以,它只是得到opt2,而不是./8部分的目录名称。

在这种情况下,我该如何将文件复制到subdir

回答

0

files是文件名列表,但copy只适应单个文件。所以把它放在一个循环中:

for fn in files: 
    shutil.copy(fn, dirname)