如何将目录的一定百分比复制到新目录中?

How do I copy a percentage of a directory into a new directory?

我正在编写一个如下所示的函数

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

其中:

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

-training是复制到的目录

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

-split_size 是我要复制到测试和训练中的 source 的百分比,以小数点表示(例如,如果 split_size 是 0.5 i将复制 50% 的源代码用于训练,50% 用于测试)

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

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

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

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

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)