当前位置: 首页 > article >正文

Python如何将大量文件夹中图片批量复制到指定文件夹,并按照顺序重新命名

大家有没有遇到过,老师或者老板上司,突然来找你,要你帮帮他们处理一下文件,把图片复制到另外的一个文件夹里面

虽然,听着是挺简单的,但是还得看文件夹的数量啊,当初的我就是听着简单,随口就答应了,也没想到给我上百个文件夹要我来处理,我真的是 *****

ok,接下来我来开始表演

需要源码的点击文末名片就好了

代码展示

import os
import shutil

path1 = r"F:\cyclegan\新建文件夹\Dataset_Part1"
pic=os.listdir(path1)
k=0
for i in range(1,len(pic)):
    path="F:/cyclegan/新建文件夹/Dataset_Part1"+"/"+str(i)
    pic2 = os.listdir(path)
    for j in range(1, len(pic2)):
        k=k+1
        shutil.copy(path+"/"+str(j)+".jpg", "F:/cyclegan/新建文件夹/zong" + "/" + str(k) + ".jpg")

使用两个for循环即可解决问题:

1)os.listdir(path)方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这里输入print(len(pics))就可以返回这个文件夹中文件的数量。

2)shutil.copy(path1,path2)把path1的文件复制到path2

3)写path路径的时候,如何其中存在循环的变量i作为名称的话(比如1.jpg,2.jpg…),i前面一定要有str,不然会报错(也就是将int型转为str型)

当然还遇到了另外一个问题,就是某个文件夹里的照片多了,我需要删除一些。
比如2000+张挑选344张,复制到另外一个文件夹。

代码解决如下:

import os
import shutil
import random
path1 = r"F:\cyclegan\新建文件夹\zong2"
pic=os.listdir(path1)
j=0
for i in range(1,345):
    number = random.randint(1,len(pic))
    j=j+1
    shutil.copy(path1 + "/" + str(number) + ".jpg", "F:/cyclegan/新建文件夹/testA" + "/" + str(j) + ".jpg")

1)这里使用随机数进行动态选择 random。random.randint用来生成整数

2)shutil.copy依然是复制

最后

今天的分享到这里就结束了,对文章还有什么不懂的,可以直接留言或者私信哈,看到了我都会解答的

也可以直接点击文末进行学习交流~


http://www.kler.cn/a/13407.html

相关文章:

  • 电力系统系统潮流分析【IEEE 57 节点】(Matlab代码实现)
  • 5.图论(0x3f:从周赛中学算法 2022下)
  • ONVIF协议介绍
  • 【DAY42】vue学习
  • 老胡的周刊(第088期)
  • webGL前端数字孪生技术方案
  • 程序员最常见的谎言
  • Xilinx FPGA下如何加快QSPI Flash加载速度
  • 王春玲:在 MogDB 中实现真正意义上的自治异步事务提交
  • JavaScript里实现继承的几种方式
  • flume 的Channel的种类
  • 一文带你搞清 ChatGPT 与 Azure OpenAI 的区别
  • AppArmor零知识学习十二、源码构建(9)
  • 设计模式-行为型模式之命令模式
  • springboot+Mybatis项目搭建教学(controller、service、dao、entity),并写一个简单的接口
  • 开源的ChatGPT项目
  • 服务型企业如何使用飞项实现项目化管理?
  • 增广拍卖——二跳页下的拍卖机制探索
  • mybatis的参数处理详解
  • 0/1背包问题——从LeetCode题海中总结常见套路