Python实现复制图片到指定文件夹并按顺序重新命名 您所在的位置:网站首页 listdir按顺序读取 Python实现复制图片到指定文件夹并按顺序重新命名

Python实现复制图片到指定文件夹并按顺序重新命名

2023-03-19 18:44| 来源: 网络整理| 查看: 265

Python实现复制图片到指定文件夹并按顺序重新命名

最近要做一个图像生成的课题,在网上找了一个混合的数据集。这个数据集中一共有360个文件夹,然后文件夹中有6-9张不等的照片,我的目标就是编写python代码将所有的照片取出来,放到一个指定的文件夹里,并且从1开始按照顺序进行编号。

该数据集有360个文件夹

每个文件夹下面有数量不等的照片:

解决代码如下:

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依然是复制

关于Python实现复制图片到指定文件夹并按顺序重新命名的文章就介绍至此,更多相关Python复制图片到指定文件夹内容请搜索编程宝库以前的文章,希望以后支持编程宝库!

下一节:python打印当前文件的绝对路径并解决打印为空的问题Python编程技术

 python打印当前文件的绝对路径并解决打印为空获取当前文件所在路径主要使用os.path.dirname(os.path.abspath(__file__)):impor ...



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有