如何批量提取不同文件夹下的图片并随机重命名

2023-10-27

问题提出:

无论是在为了跑深度学习模型而准备数据集,还是其他的一些用途,相信大家都会遇到一个问题:我所需要的图片分布在很多不同的文件夹下,但我不需要这么多文件夹,那么我如果要使用这些图片的话,就需要把这些文件夹下的图片一个个提取出来,然后再放到新建的文件夹下,有时如果文件夹下的图片是按照顺序命名的,比如001.jpg......089.jpg等等,那么将他们放到一个文件夹下还面临文件名重复需要重命名的问题。(比如我需要将deepfashion2数据集的图片提取一部分放到我的文件夹下,就面临以上问题)

那如何将这些图片批量提取并重新放到新的文件夹下呢?

解决方法:

1.首先,需要先新建一个文件夹,存放我们的n个小文件夹:

 比如我新建一个zhao-sweater,里面是我需要提取照片的子文件夹

 

 2.之后我再创建一个Top文件夹,用来存放我提取之后的照片,

 3.运行代码:

import os
import  re
import shutil,random


def get_allfile(path):  # 获取所有文件
    all_file = []
    for f in os.listdir(path):  # listdir返回文件中所有目录
        f_name = os.path.join(path, f)
        all_file.append(f_name)
    return all_file


def moveFile(fileDir, tarDir):
    pathDir = os.listdir(fileDir)  # 取图片的原始路径
    for name in pathDir:

        s=fileDir.split('D://桌面//zhao-sweater\\')[1]#要提取图片的主文件夹
        shutil.move(fileDir +"//"+name, tarDir+"//"+s+"_"+name)


def read_directory(train_save_path,val_path,fw,fw1):
    train_fileslist = os.listdir(train_save_path)
    val_fileslist=os.listdir(val_path)
    train_sort_num_list = []
    val_sort_num_list = []
    for file in train_fileslist:
        if file.__contains__("jpg"):
            train_sort_num_list.append(int(file.split('Datacluster Fire and Smoke Sample (')[1].split(').jpg')[0]))  # 去掉前面的字符串和下划线以及后缀,只留下数字并转换为整数方便后面排序
            train_sort_num_list.sort()  # 然后再重新排序
    for file in val_fileslist:
        if file.__contains__("jpg"):
            val_sort_num_list.append(int(file.split('Datacluster Fire and Smoke Sample (')[1].split(').jpg')[0]))  # 去掉前面的字符串和下划线以及后缀,只留下数字并转换为整数方便后面排序
            val_sort_num_list.sort()  # 然后再重新排序
    i=0
    j=0
    for filename in os.listdir(train_save_path):
            if filename.__contains__("jpg"):
                fw.write(train_save_path+"//"+"Datacluster Fire and Smoke Sample ("+str(train_sort_num_list[i])+")"+'\n')
                i=i+1;
    for filename in os.listdir(val_path):
        if filename.__contains__("jpg"):
            fw1.write(val_path + "//"+"Datacluster Fire and Smoke Sample ("+str(val_sort_num_list[j])+")" + '\n')
            j=j+1
if __name__ == '__main__':
    train_path = "D://桌面//zhao-sweater"
    all_file = get_allfile(train_path)  # tickets要获取文件夹名
    onetarDir="D://桌面//Top"#提取之后的文件存放位置
    if not os.path.exists(onetarDir):
        os.makedirs(onetarDir)
    for i in all_file:
        moveFile(i,onetarDir)






 

我们只需要更改三处位置:

s=fileDir.split('D://桌面//zhao-sweater\\')[1]#要提取图片的主文件夹
train_path = "D://桌面//zhao-sweater"#还是主文件夹的路径
onetarDir="D://桌面//Top"#提取之后的文件存放位置

 

4.提取成功!

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何批量提取不同文件夹下的图片并随机重命名 的相关文章

  • 如何访问pandas数据框中的多级索引?

    我想用相同的索引来调用这些行 这是示例数据框 arrays np array bar bar baz baz foo foo qux qux np array one two one two one two one two df pd Da
  • openpyxl 2.4.2:保存后公式生成的单元格值为空

    我使用 openpyxl 打开文件 编辑一些单元格并保存更改 这是一个例子 import openpyxl book openpyxl load workbook sheet path sheet book active for row i
  • 在 Django 中定义视图和 url。为什么调用函数时不使用括号?

    我已经在经历 Python速成课程 目前正在进行 Django Web应用程序项目 学习日志 阶段 有些东西与我已经学到的相矛盾 views py file from django shortcuts import render def i
  • 使用 python 制作本地服务器应用程序的最佳方法

    我想要简单轻松地集成 python 和 vba 人们 如果他们在阅读本文后亲自见到我 阅读本文可能会杀了我 但我正在使用 django 开发服务器来实现此目的 有没有什么简单又好的方法 仅举个例子 我想使用 python 模块 openpy
  • 在 Python 中使用 XPath 和 LXML

    我有一个 python 脚本 用于解析 XML 并将某些感兴趣的元素导出到 csv 文件中 我现在尝试更改脚本以允许根据条件过滤 XML 文件 等效的 XPath 查询将是 DC Events Confirmation contains T
  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 如何将条目中的部分文本加粗并更改其背景颜色?

    我正在创建一个基于 Tkinter 的 GUI 它有一个 Entry 小部件 我想将其文本的一部分加粗并更改其背景颜色 但我不知道我该怎么做 如果我使用文本小部件 我可以只使用标签 但看起来它们不能与条目小部件一起使用 此代码使用文本小部件
  • Sorted(key=lambda: ...) 背后的语法[重复]

    这个问题在这里已经有答案了 我不太明白背后的语法sorted 争论 key lambda variable variable 0 Isn t lambda随意的 为什么是variable在看起来像的内容中陈述了两次dict 我认为这里的所有
  • 使用正则表达式解析 Snort 警报文件

    我正在尝试使用 Python 中的正则表达式从 snort 警报文件中解析出源 目标 IP 和端口 和时间戳 示例如下 03 09 14 10 43 323717 1 2008015 9 ET MALWARE User Agent Win9
  • VSCode pytest 测试发现失败

    Pytest 测试发现失败 用户界面指出 Test discovery error please check the configuration settings for the tests 输出窗口显示 Test Discovery fa
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • Python:随时接受用户输入

    我正在创建一个可以做很多事情的单元 其中之一是计算机器的周期 虽然我将把它转移到梯形逻辑 CoDeSys 但我首先将我的想法放入 Python 中 我将进行计数 只需一个简单的操作 counter 1 print counter 跟踪我处于
  • 字典中列表中仅有的几个索引的总和

    如果我有这种类型的字典 a dictionary dog white 3 5 black 6 7 Brown 23 1 cat gray 5 6 brown 4 9 bird blue 3 5 green 1 2 yellow 4 9 mo
  • Python int 太大,无法放入 SQLite

    我收到错误 OverflowError Python int 太大 无法转换为 SQLite INTEGER 来自以下代码块 该文件约25GB 因此必须分部分读取 length 6128765 Works on partitions of
  • 在 pip.conf 中指定多个可信主机

    这是我尝试在我的中设置的 etc pip conf global trusted host pypi org files pythonhosted org 但是 它无法正常工作 参考 https pip pypa io en stable
  • Python 矩阵每一行的总和

    lista 1 2 3 4 5 6 7 8 9 print lista def filas lista res for elemento in lista x sum lista elemento res append x print re
  • 是否可以强制浮点数的指数或有效数匹配另一个浮点数(Python)?

    这是我前几天试图解决的一个有趣的问题 是否可以强制一个的有效数或指数float与另一个人一样float在Python中 出现这个问题是因为我试图重新调整一些数据 以便最小值和最大值与另一个数据集匹配 然而 我重新调整后的数据略有偏差 大约小
  • Pandas 在特定列将数据帧拆分为两个数据帧

    I have pandas我组成的 DataFrameconcat 一行由 96 个值组成 我想将 DataFrame 从值 72 中分离出来 这样 一行的前 72 个值存储在 Dataframe1 中 接下来的 24 个值存储在 Data
  • 从 dask 数据框中的日期时间序列获取年份和星期?

    如果我有一个 Pandas 数据框和一个日期时间类型的列 我可以按如下方式获取年份 df year df date dt year 对于 dask 数据框 这是行不通的 如果我先计算 像这样 df year df date compute
  • 从时间序列生成日期特征

    我有一个数据框 其中包含如下列 Date temp data holiday day 01 01 2000 10000 0 1 02 01 2000 0 1 2 03 01 2000 2000 0 3 30 01 2000 200 0 30

随机推荐

  • websocket连接状态码

    最近在做websocket 需要用到这些 查资料记录下 官网 https developer mozilla org zh CN docs Web API CloseEvent CloseEvent code 只读 返回一个 unsigne
  • Windows WSL中安装Android Studio

    1 安装WSL 我使用的是Windows10 1803版本 安装的是Ubuntu16 04 LTS版本 参考 Windows Subsystem for Linux Installation Guide for Windows 10 2 配
  • 【C语言基础练习】百钱买百鸡问题。母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只?

    百钱买百鸡问题 母鸡3元钱一只 小鸡1元钱三只 问100元钱要刚好买100只鸡 编程实现母鸡和小鸡各多少只 1 include
  • major.minor version 51.0

    mavn deploy报错 maven版本低了换个高的或者用IDEA自带的
  • chatgpt赋能python:Python数据框基本操作

    Python 数据框基本操作 Python 是一种流行的编程语言 常用于数据分析 数据科学和机器学习等领域 Python 中数据框是一种非常重要的数据类型 也被称为表格或二维数组 本文将介绍 Python 数据框的基本操作 什么是 Pyth
  • jenkins 公钥配置

    Jenkins所在服务器linuxA 应用服务器LinuxB a生成的公钥 放到B服务器 服务器B 在 root ssh路径下建立authorized keys文件 将服务器A生成的id rsa pub 公钥 内容复制到authorized
  • 前端对json配置文件的读取

    一 JSON文件的数据格式为 名字为 path json ipPath http 10 12 37 11 8085 二 在前端页面中对文件进行读取 其中返回的data的数据类型是object 对path json文件进行读取 getJSON
  • 07 Linux补充|秋招刷题|9月6日

    目录 Linux 结构体内存字节对齐 静态变量static 空指针 Linux 结构体内存字节对齐 结构体内存字节要对 32位系统 4 8 32 64位系统 8 16 24 字节对 字节对 是指在计算机中 各种类型数据按照 定的规则在空间上
  • 解决Win10家庭版没有‘本地用户和组’问题

    win10系统是家庭版 并且没有本地用户和组 处理方法 将系统升至为win10专业版 然后下载microKMS v17 02 14做的激活 1 打开运行窗口 输入 gpedit msc或者secpol msc 点击确定 弹出提示框提示找不到
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)

    FFmpeg 是一个非常优秀的视频处理开源工具 假如你想把avi或者flv转成mpp4的时候 你就不必要用格式工厂很繁琐的方式去转换格式 因为比如flv和mp4他的编码 视频编码和音频编码 都是h 264编码其实并没有变 这是封装格式不一样
  • 算法学习day27

    文章目录 39 组合总和 回溯法 40 组合总和II 回溯 131 分割回文串 回溯 39 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target 找出 candidates 中可以使数字和为目标数
  • mybatis中resultMap和resultType区别,三分钟读懂

    先说结论 resultmap与resulttype的区别为 对象不同 描述不同 类型适用不同 说人话就是 resultmap和resulttype功能差不多 但是resultmap功能更强大 resultType 使用resultType进
  • 成员变量与属性是不同的

    成员变量 在类体的变量部分中定义的变量 也称为字段 属性 官方定义为属性是指get或者set方法名 去掉get或者set后 把剩余的部分首字母改为小写后 即为这个类的属性 例 public class Test private String
  • 基础算法01

    冒泡排序 基本思想是 将相邻的记录的关键码进行比较 若前面记录的关键码大于后面记录的关键码 则将它们交换 否则不交换 bool swapped true do swapped false for int i 0 i
  • 在idea中配置 gitignore忽略文件(一)

    针对一些不用每次提交的文件 设置不让其提交到git的本地仓库中 先在idea中安装gitignore插件 点击File gt Settings 选择plugs 在右边搜索 ignore 点击Install 安装完成后就可以愉快的使用了 不过
  • 界面、线程与Qt线程

    1 当界面的操作频率很高 而且还要考虑用户体验时 耗时的操作会独占系统cpu资源 让界面卡死在那里 这时需要考虑多线程方案 将耗时的操作放在 线程中执行 如下例 界面需要不停地添加字符串 如果不使用线程处理的话界面会卡死 下面我们先使用UC
  • 主成分分析(Principal Component Analysis,PCA)详解

    PCA是非常重要的统计方法 其实际应用非常广泛 但是很多讲解太过于公式化 很难让初学者消化 本文将从一个实际例子出发 并对数学公式原理及推导过程作出详细解释 即使你的数学基础比较差 在看完这篇博客之后 相信你会对PCA会有一个透彻的认知 P
  • 构造函数初始化:提高代码可读性和执行效率

    在C 中 构造函数是用来初始化对象数据成员的 一个对象在创建的时候 构造函数会被自动调用 以便为该对象的数据成员赋初值 传统的初始化方式是在构造函数内部对数据成员逐一进行初始化 这种方式虽然可行 但是代码复杂度高且效率低下 本文将介绍如何使
  • 一文详解!嵌入式软件的自动化测试框架、测试流程与功能研究分析

    目录 引言 1 嵌入式软件自动化测试平台分析 2 嵌入式软件自动化测试平台概要设计 3 嵌入式软件自动化测试平台详细设计 3 3 功能设计 引言 嵌入式软件是指被设计用于嵌入或控制另一个产品 设备或系统的软件 它在各种应用领域 例如消费电子
  • 如何批量提取不同文件夹下的图片并随机重命名

    问题提出 无论是在为了跑深度学习模型而准备数据集 还是其他的一些用途 相信大家都会遇到一个问题 我所需要的图片分布在很多不同的文件夹下 但我不需要这么多文件夹 那么我如果要使用这些图片的话 就需要把这些文件夹下的图片一个个提取出来 然后再放