2016-12-31 147 views
0

如何移动在多个目录中的文件与相同的子directoies

import shutil 

for sub_dir in os.listdir(path + "train"): 
    src_files = os.listdir(path+"train/" + sub_dir) 
    ... 
    for file in src_files[0:split_index]: 
     original = path+"train/" + sub_dir+ "/" + file 
     distutils.dir_util.mkpath(path + "valid/" + sub_dir)  
     destination = path + "valid/" + sub_dir+"/" 
     shutil.move(original, destination) 

我有两个这样的目录结构的另一个目录:

train/abc 
train/def 
train/ghi 

valid/ 

我需要移动在火车文件的某部分/ to valid /并保留原来的目录结构。移动后,有效/应看起来像列车/:

valid/abc 
valid/def 
valid/ghi 

上述代码是不完全正确的。我如何修改它以使其正确?

+1

使用'print()'来查看变量中的含义 - 它有助于发现问题。 – furas

+0

你执行代码时看到了什么行为? – KevinSeaman

+0

我需要在移动之前先创建子目录。 – user697911

回答

0
distutils.dir_util.mkpath(path + "valid/" + sub_dir) 

添加了这部分,现在它工作。

相关问题