idfox2020 2022-05-12 11:09 采纳率: 100%
浏览 108
已结题

python 随机复制指定数量的图片到指定文件夹并重命名图片

import os
from shutil import copy
import random
if name == 'main':
VAL_EXTRACT_NUM = 6 # 随机抽取数量
BASE_PATH = "G:\A\" # 随机抽取路径
VAL_TAR_PATH = "G:\B\" # 拷贝到新路径

data = os.listdir(BASE_PATH)
print("图片数量:%d" % len(data))
# 随机抽取验证集数据
val_extr_img = random.sample(data, VAL_EXTRACT_NUM)
print(val_extr_img)
for f in val_extr_img:
    src = os.path.join(BASE_PATH, f)
    data.remove(f)
    copy(src, VAL_TAR_PATH)
    

到这步能随机复制指定数量的图片到新路径 但我不懂怎么重命名图片名称

比如 S001.JPG 被随机抽到
复制并重命名后 新文件名在原文件名前加 “”正式图片“”
新路径下 复制出一个新文件 正式图片S001.JPG

帮忙结合上面的 给出完整版 不然我不知道怎么完善他

  • 写回答

3条回答 默认 最新

  • hyh123a 全栈领域新星创作者 2022-05-12 11:19
    关注

    添加这两行,具体位置看下面:

            print(VAL_TAR_PATH + f, '   修改为    ' ,VAL_TAR_PATH + '/正式图片_' + f) # 根据这个看下输出是否有问题
            os.rename(VAL_TAR_PATH + f,  VAL_TAR_PATH + '/正式图片_' + f) 
    

    具体修改代码如下,请看注释

    import os
    from shutil import copy
    import random
    
    if __name__ == 'main':
        VAL_EXTRACT_NUM = 6  # 随机抽取数量
        BASE_PATH = "G:\A\" # 随机抽取路径
        VAL_TAR_PATH = "G:\B\" # 拷贝到新路径
    
        data = os.listdir(BASE_PATH)
        print("图片数量:%d" % len(data))
        # 随机抽取验证集数据
        val_extr_img = random.sample(data, VAL_EXTRACT_NUM)
        print(val_extr_img)
        for f in val_extr_img:
            src = os.path.join(BASE_PATH, f)
            data.remove(f)
            copy(src, VAL_TAR_PATH)
            print(VAL_TAR_PATH + f, '   修改为    ' ,VAL_TAR_PATH + '/正式图片_' + f) # 根据这个看下输出是否有问题
            os.rename(VAL_TAR_PATH + f,  VAL_TAR_PATH + '/正式图片_' + f) 
            # os.rename(VAL_TAR_PATH + f,  VAL_TAR_PATH + '正式图片_' + f)  # 因为不确定你的f返回格式是怎样的,大致猜测这样凭借,如果报错,请发出报错文本给我或者自己根据实际情况修改下
    

    如有问题及时沟通

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 已采纳回答 5月12日
  • 修改了问题 5月12日
  • 创建了问题 5月12日

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?