【python】python实现根据txt文档中的内容,选择指定的图片并复制到新的文件夹中

该代码读取test.txt文件中的行,与img_res文件夹中的图片名称对比,匹配成功的图片会被复制到img_new文件夹。通过优化,可以直接移动txt中列出的图片,因为已知它们存在于img_res中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码功能:
读取txt中的每一行,然后匹配某个文件夹中的图片名称,匹配成功的话将该图片复制到一个新的文件夹中。

文件格式如下

----img_res
         --000001.jpg
         --000002.jpg
         --000003.jpg
          ...
          --000018.jpg
----main
         --test.txt
             --000002
             --000004
             --000007
             --000009
----copy_pic.py

其中img_res文件夹的内容如下:
在这里插入图片描述

其中test.txt文档内容如下:
在这里插入图片描述copy_pic.py内容如下:

# -*- coding: utf-8 -*-
"""
Created on Wed Oct 21 17:10:11 2020

@author: zqq
"""

import os 
import shutil

# 读取图片的路径
read_path = "img_res"
# 存放图片的路径
save_path = "img_new"
if not os.path.exists(save_path):
    os.mkdir(save_path)
fileType = '.jpg'
num = 0
# 读取并遍历读取txt中的每行
with open('main/test.txt','r') as f:
    for name in f:
        fileName = name.strip() # 去除末尾的换行
        #print(fileName)
        #print(type(fileName)) # 查看文件类型
        
        # 读取并遍历文件夹中的图片
        for file in os.listdir(read_path):
            #print(file)
            #print(type(file))      
    
            if fileName+fileType == file:
                num+=1
                shutil.copy(os.path.join(read_path,fileName+fileType),save_path)
                print("%s Copy successfully"%(fileName+fileType))
    print("Copy complete!")
    print("Total pictures copied:",num)
                
### 测试
# shutil.copy('img_res/000001.jpg',save_path)
# fileName = '000001'
# shutil.copy(os.path.join(read_path,fileName+fileType),save_path)

运行代码后文件格式如下:

----img_res
         --000002.jpg
         --000004.jpg
         --000007.jpg
         --000009.jpg

----img_res
         --000001.jpg
         --000002.jpg
         --000003.jpg
          ...
          --000018.jpg
----main
         --test.txt
             --000002
             --000004
             --000007
             --000009
----copy_pic.py

注:代码还可以优化,比如,我们可以不用将test.txt中每一行和img_res中的图片名进行匹配,而是直接移动。因为我们知道test.txt中的每一行都在img_res中。做匹配比较是为了满足当test.txt中的每一行中不满足在img_res中的条件。

参考:
https://www.cnblogs.com/zangyu/p/5764905.html
https://blog.youkuaiyun.com/weixin_45334587/article/details/104270117

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器不学习我学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值