Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将目录的百分比复制到新目录中?_Python_Python 3.x_Copy_Shutil_File Copying - Fatal编程技术网

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

Python 如何将目录的百分比复制到新目录中?,python,python-3.x,copy,shutil,file-copying,Python,Python 3.x,Copy,Shutil,File Copying,我正在写一个函数,看起来像这样 def copy_文件(来源、培训、测试、拆分大小): 其中: -source是我要从中复制的源目录 -培训是要复制到的目录 -测试是要复制到的另一个目录 -split_size是我要复制到测试和培训中的源的百分比,以小数点表示(例如,如果split_size为0.5,我将复制50%的源到培训中,复制50%到测试中) 我正在使用shutil库来使用copy,我将迭代我的源文件来复制每个文件,比如 if len(image) > 0:

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

def copy_文件(来源、培训、测试、拆分大小):

其中:

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

-培训是要复制到的目录

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

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

我正在使用
shutil
库来使用copy,我将迭代我的源文件来复制每个文件,比如

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

但我不确定如何指定此函数的拆分大小部分。我确信这并不复杂,我只是在复制文件方面经验很少,这是我第一次与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) 

你的问题中有几个语法错误。请重新阅读并更正,因为很难理解你想做什么。另外,更多的例子也确实会有帮助well@Jab我找不到任何语法错误,但格式有问题。现在修好了。哦,谢谢!所以splitVal将百分比转换为将被复制的文件数量,然后train_file_list使用该数量作为切片,在?