首页 > 编程语言 >python脚本:批量修改图片名称

python脚本:批量修改图片名称

时间:2025-01-14 23:30:22浏览次数:3  
标签:脚本 批量 python self window tk pady path folder

运用演示:

 

 步骤:

1.将需要修改名称的图片放在一个文件夹中,选择此文件夹

2.输入命名格式,进行重命名

代码:

直接将下列代码复制到python编译器中即可

import os
from pathlib import Path
import tkinter as tk
from tkinter import filedialog, messagebox

class ImageRenamer:
    def __init__(self):
        self.window = tk.Tk()
        self.window.title("图片批量重命名工具")
        self.window.geometry("400x350")
        
        # 创建界面元素
        self.create_widgets()
        
    def create_widgets(self):
        # 选择文件夹按钮
        self.folder_btn = tk.Button(self.window, text="选择文件夹", command=self.select_folder)
        self.folder_btn.pack(pady=10)
        
        # 显示选中的文件夹路径
        self.folder_path = tk.StringVar()
        self.path_label = tk.Label(self.window, textvariable=self.folder_path, wraplength=350)
        self.path_label.pack(pady=5)
        
        # 文件名前缀输入框
        tk.Label(self.window, text="请输入文件名前缀:").pack(pady=5)
        self.prefix_entry = tk.Entry(self.window)
        self.prefix_entry.pack(pady=5)
        self.prefix_entry.insert(0, "image")
        
        # 间隔符号输入框
        tk.Label(self.window, text="请输入间隔符号(如: _ - 或空):").pack(pady=5)
        self.separator_entry = tk.Entry(self.window)
        self.separator_entry.pack(pady=5)
        self.separator_entry.insert(0, "_")
        
        # 起始编号输入框
        tk.Label(self.window, text="请输入起始编号:").pack(pady=5)
        self.start_num = tk.Entry(self.window)
        self.start_num.pack(pady=5)
        self.start_num.insert(0, "1")
        
        # 重命名按钮
        self.rename_btn = tk.Button(self.window, text="开始重命名", command=self.rename_images)
        self.rename_btn.pack(pady=20)
        
        # 状态显示
        self.status_var = tk.StringVar()
        self.status_label = tk.Label(self.window, textvariable=self.status_var)
        self.status_label.pack(pady=10)
        
    def select_folder(self):
        folder_path = filedialog.askdirectory()
        if folder_path:
            self.folder_path.set(folder_path)
            
    def rename_images(self):
        folder_path = self.folder_path.get()
        if not folder_path:
            messagebox.showerror("错误", "请先选择文件夹!")
            return
            
        prefix = self.prefix_entry.get()
        separator = self.separator_entry.get()
        
        try:
            start_num = int(self.start_num.get())
        except ValueError:
            messagebox.showerror("错误", "起始编号必须是数字!")
            return
            
        # 支持的图片格式
        image_extensions = ('.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp')
        
        try:
            # 获取所有图片文件
            image_files = [f for f in os.listdir(folder_path) 
                         if f.lower().endswith(image_extensions)]
            
            # 排序确保重命名顺序
            image_files.sort()
            
            # 重命名计数
            count = 0
            
            # 重命名图片
            for i, old_name in enumerate(image_files, start=start_num):
                # 获取原文件扩展名
                ext = os.path.splitext(old_name)[1]
                # 新文件名
                new_name = f"{prefix}{separator}{i}{ext}"
                
                # 完整的文件路径
                old_path = os.path.join(folder_path, old_name)
                new_path = os.path.join(folder_path, new_name)
                
                # 如果新文件名已存在,添加额外的编号
                counter = 1
                while os.path.exists(new_path):
                    new_name = f"{prefix}{separator}{i}{separator}{counter}{ext}"
                    new_path = os.path.join(folder_path, new_name)
                    counter += 1
                
                os.rename(old_path, new_path)
                count += 1
            
            self.status_var.set(f"重命名完成!共处理 {count} 个文件")
            messagebox.showinfo("成功", f"已完成重命名,共处理 {count} 个文件")
            
        except Exception as e:
            messagebox.showerror("错误", f"重命名过程中出错:{str(e)}")
            
    def run(self):
        self.window.mainloop()

if __name__ == "__main__":
    app = ImageRenamer()
    app.run()

 

标签:脚本,批量,python,self,window,tk,pady,path,folder
From: https://blog.csdn.net/weixin_56259838/article/details/145149349

相关文章

  • python开发安卓程序
    资料Python利用appium实现模拟手机滑动操控的操作_python滑动手机屏幕-CSDN博客直接使用库:appium其他依赖:编译环境:打包工具:新技能:用Python写一个安卓APP-逆锋起笔-博客园(cnblogs.com)直接使用库:kivy其他依赖:python -m pip install docutils pygmentspypiwin......
  • Python中LLM的模型稀疏化训练:L0正则化与彩票假设
    文章目录引言1.模型稀疏化的背景与意义1.1模型稀疏化的动机1.2稀疏化的主要方法2.L0正则化2.1L0正则化的理论基础2.2L0正则化的实现2.3L0正则化的优缺点3.彩票假设3.1彩票假设的理论基础3.2彩票假设的实现3.3彩票假设的优缺点4.L0正则化与彩票假设的结合5......
  • 《CPython Internals》阅读笔记:p151-p151
    《CPythonInternals》学习第9天,p151-p1510总结,总计1页。一、技术总结无。二、英语总结(生词:1)1.marshal(1)marshalingMarshallingormarshaling(USspelling)istheprocessoftransformingthememoryrepresentationofanobjectintoadataformsuitablefo......
  • Autopy 是一款基于 Python 和 Rust 的强大 GUI 自动化库
    Autopy是一款基于Python和Rust的强大GUI自动化库,它为开发者提供了简便且高效的API来模拟鼠标和键盘的操作、在屏幕上查找颜色和位图以及显示警报。这些功能使得Autopy成为了一个跨平台的自动化工具,适用于MacOSX、Windows以及支持XTest扩展的X11系统。跨......
  • 【Python】从爬虫小白到牢饭大佬
    也许在某一个平行时空里,我们美好地相遇,白头偕老;也可能在另一个平行时空里,我们在人海中无数次擦身而过,素昧平生;只可惜在这个时空里,你的名字叫遗憾。 爬虫简介 1.网络爬虫,是一种按照一定的规定,自动抓取互联网信息的程序或者脚本。2.爬虫运行原理:先获取数据,再处理数据,......
  • 从零开始的python之旅(day3)
    从零开始的python之旅(day3)  越学python越觉得其功能丰富,而且相对于c语言来说,python可能更适合新手入门,两个都是相通的,看自己对哪方面感兴趣吧  先让我们来对昨天作业收一下尾  BMIx=float(input('请输入体重(kg)\n'))y=float(input('请输入身高(m)\n'))bmi=float(......
  • Python处理Excel数据的方法,这一篇文章就够了!!
    Excel是数据处理的“瑞士军刀”,在日常工作中扮演着重要角色。然而,面对复杂的Excel文件时,手动处理显然效率低下。那么,如何利用Python高效地处理Excel数据?xlrd、xlwt、openpyxl和pandas是不可或缺的利器。今天,我们就来深度剖析这些工具,教你用Python优雅地操作Excel!......
  • python语言A站视频爬虫程序代码QZQ1
    importrequestsimportosimportsubprocess#https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/3fd2d78e1ebba085-529617cf38bbad5860227fbdf3a41546-hls_720p_2.00003.ts?pkey=ABC_F8k9Ed6OSnAdir8rrRmbYfeU39b5CvYeJQ3ttw8ZLQzlfk1NZNLJOlmwW-9ENIIuNL......
  • python语言tengxunshipin爬虫程序代码QZQ2
    importrequests#找媒体的请求url即可。url=‘https://f3e3963e336d9d3bdc18adcb0240e796.v.smtcdns.com/music.qqvideo.tc.qq.com/AIRFhqAd3UEXqwLOz5sfupz_V8TD-xZxVeAZnZUXZJYg/B_JxNyiJmktHRgresXhfyMep_mLAvgwYmAjetftmCCCW-f7a09P0_-_3BS3XuKJsUR/k0012md5982.mp4......
  • Python 文件和异常捕获(详解)
            前言:在Python编码中,我们会学到python中的文件的读取与写入,当然还有对文件夹的操作,在文章的最后还有异常捕获的详细解释~~一.文件的概念:        有名称:每个文件都有一个文件名,用于在特定的文件系统中唯一标识该文件,方便用户和系统对文件进行识别、访......