Python实现图片通过名称自动分配到对应文件夹(附赠GUI版)

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

库的介绍

  • Python 中的 os 库是一个标准库模块,用于与操作系统进行交互。它提供了丰富的功能,允许你在 Python 程序中执行操作系统相关的任务,比如文件和目录操作、环境变量管理、进程管理等。以下是 os 模块的一些常用功能和方法:

库的安装

内置库,无需安装

背景

  • 大家可以看到,下图文件夹中有许多我创建的随机图片,我需要将相同名称的图片放置同一个文件夹中

  • 创建随机图片,在这节课中:点我直达

在这里插入图片描述

在这里插入图片描述

代码

  • 非常简单的小代码,用了一个一键多值的字典

def f1():
    import os
    from collections import defaultdict

    list_a = []
    name_file = defaultdict(list)
    for p in os.listdir('图片'):
        name = p.split('_')[0]
        list_a.append((name, p))

    for k, v in list_a:
        name_file[k].append(v)

    for k, v in name_file.items():
        os.mkdir(k)
        for i in v:
            os.rename('图片/' + i, k + '/' + i)

f1()

在这里插入图片描述

GUI版

# -*- coding: UTF-8 -*-
'''
@Project :测试 
@File    :test.py
@IDE     :PyCharm 
@Author  :一晌小贪欢(278865463@qq.com)
@Date    :2024/9/3 下午9:27 
'''
import os
from tkinter import Tk, filedialog, Label, Button, simpledialog
from collections import defaultdict


def select_folder():
    """ 弹出对话框让用户选择文件夹 """
    return filedialog.askdirectory(title="选择图片所在的文件夹")


def organize_images(folder):
    """ 组织文件夹中的图片 """
    list_a = []
    name_file = defaultdict(list)

    for p in os.listdir(folder):
        if os.path.isfile(os.path.join(folder, p)) and p.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
            name = p.split('_')[0]
            list_a.append((name, p))

    for k, v in list_a:
        name_file[k].append(v)

    for k, v in name_file.items():
        new_folder = os.path.join(folder, k)
        os.mkdir(new_folder)
        for i in v:
            os.rename(os.path.join(folder, i), os.path.join(new_folder, i))
    simpledialog.messagebox.showinfo("完成", "图片分类完成!")


def main():
    root = Tk()
    root.withdraw()  # 隐藏主窗口

    folder_path = select_folder()
    if folder_path:
        organize_images(folder_path)

    root.destroy()


if __name__ == "__main__":
    main()

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

使用Python可以很容易地根据图片名称批量复制图片到指定文件夹。 首先,我们需要准备好原始图片所在的文件夹和目标文件夹。接下来,我们可以使用Python的os和shutil模块来完成复制操作。 首先,我们需要使用os模块中的listdir函数来获取原始图片文件夹中的所有文件。接着,我们可以使用循环来逐个处理每个文件。 对于每个文件,我们可以使用字符串处理方法来提取其中的图片名称,并与指定的图片名称进行比较。如果它们匹配,我们就可以使用shutil模块中的copy函数将该图片复制到目标文件夹。 下面是一个实现上述功能的Python代码示例: ```python import os import shutil # 原始图片所在的文件夹 source_folder = "原始图片文件夹路径" # 目标文件夹 destination_folder = "目标文件夹路径" # 指定的图片名称 specified_name = "指定的图片名称" # 获取原始图片文件夹中的所有文件 files = os.listdir(source_folder) # 遍历每个文件 for filename in files: # 提取文件中的图片名称 image_name = os.path.splitext(filename)[0] # 比较图片名称 if image_name == specified_name: # 构建源文件路径和目标文件路径 source_path = os.path.join(source_folder, filename) destination_path = os.path.join(destination_folder, filename) # 复制图片到指定文件夹 shutil.copyfile(source_path, destination_path) ``` 以上代码会遍历原始图片文件夹中的所有文件,并将与指定的图片名称匹配的图片复制到目标文件夹中。 希望以上内容能够帮助到你,如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一晌小贪欢

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

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

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

打赏作者

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

抵扣说明:

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

余额充值