【问题标题】:How do I copy a percentage of a directory into a new directory?如何将目录的一部分复制到新目录中?
【发布时间】:2020-12-10 07:33:39
【问题描述】:

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

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。

【问题讨论】:

  • 您的问题存在一些语法错误。请重新阅读并更正,因为很难破译你想要做什么。此外,更多的例子也会有帮助
  • @Jab 我找不到任何语法错误,但格式有问题。现在已经修复了。

标签: python python-3.x copy shutil file-copying


【解决方案1】:

您可以使用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) 

【讨论】:

  • 哦,谢谢!所以 splitVal 将百分比转换为将被复制的文件数量,然后 train_file_list 使用该数字作为切片进行剪切?
猜你喜欢
  • 2021-01-01
  • 2020-12-11
  • 1970-01-01
  • 2011-07-12
  • 2014-07-18
  • 1970-01-01
  • 2013-01-11
  • 2011-11-03
  • 1970-01-01
相关资源
最近更新 更多