将一个文件夹下的文件每隔两个复制一个到一个新的文件夹中

隔两个取一个文件

先要把一个文件下的文件都遍历一遍,然后把路径保存到一个列表中,然后每隔两个取出一个定义一个新的列表,这个列表里的元素就是要复制的文件

import shutil
import os

source_path = r"F:\CR的均值化数据\train"
destination_path = r"F:\目标文件夹的路径"

result = h5_files[::3]

for filename in result:
    source_file = os.path.join(source_path, filename)
    destination_file = os.path.join(destination_path, filename)
    shutil.copy2(source_file, destination_file)

原始文件夹下的目录 

复制后文件下的目录 

 然后再把这个复制的文件夹下的文件按照7:2:1复制到三个文件夹中

import random
import shutil
import os

source_path = r"F:\复制文件\train"
destination_path1 = r"F:\复制文件\train1"
destination_path2 = r"F:\复制文件\valid"
destination_path3 = r"F:\复制文件\test"

# 设置随机数种子
random.seed(42)

# 获取复制后的文件列表
copied_files = os.listdir(source_path)

# 计算每个文件夹应该包含的文件数量
total_files = len(copied_files)
folder1_count = total_files // 10 * 7
folder2_count = total_files // 10 * 2
folder3_count = total_files - folder1_count - folder2_count

# 随机打乱文件列表
random.shuffle(copied_files)

# 将文件按照比例分配到三个文件夹中
folder1_files = copied_files[:folder1_count]
folder2_files = copied_files[folder1_count:folder1_count+folder2_count]
folder3_files = copied_files[folder1_count+folder2_count:]

# 复制文件到目标文件夹
for filename in folder1_files:
    source_file = os.path.join(source_path, filename)
    destination_file = os.path.join(destination_path1, filename)
    shutil.copy2(source_file, destination_file)

for filename in folder2_files:
    source_file = os.path.join(source_path, filename)
    destination_file = os.path.join(destination_path2, filename)
    shutil.copy2(source_file, destination_file)

for filename in folder3_files:
    source_file = os.path.join(source_path, filename)
    destination_file = os.path.join(destination_path3, filename)
    shutil.copy2(source_file, destination_file)

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值