首页 > 解决方案 > 如何将目录的一部分复制到新目录中?

问题描述

我正在编写一个看起来像这样的函数

def copy_file(source, training, testing, split_size):

在哪里:

-source 是我要从中复制的源目录

-training 是要复制到的目录

-testing 是另一个要复制到的目录

-split_size 是我想要复制到测试和训练的的百分比,以小数点表示(例如,如果 split_size 为 0.5,我将复制 50% 的源到训练,50% 到测试)

我正在使用shutil库来使用副本,我将遍历我的源文件以复制每个文件,例如

       if len(image) > 0:
          copy(image, training)

但我不确定如何指定这个函数的 split_size 部分。我确信这并不复杂,我只是在复制文件方面经验很少,这是我第一次使用shutil。

标签: pythonpython-3.xcopyshutilfile-copying

解决方案


您可以使用ospackage 来获取源目录中的文件列表。获得文件列表后,您可以根据传递的百分比值将列表拆分为两个列表。之后遍历两个列表以复制相应目录中的文件。

import os
import shutil

def copy_file(src,train,test,percent):
  files_list = os.listdir(src)
  splitVal = int(round(percent*len(file_list)))
  train_file_list = files_list[:splitVal]
  test_file_list = files_list[splitVal:]
  
  # now iterate through the two list and copy the files to respective
  # directory using shutil.copy(file_name,dest_dir) 

推荐阅读