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 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题