吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4185|回复: 64
收起左侧

[原创工具] 文件后缀批量修改工具

  [复制链接]
fortytwo 发表于 2023-3-22 20:34
本帖最后由 SailZhao520 于 2023-3-23 13:26 编辑

悬赏区的一个网友需要,写了个代码批量修改后缀;
这是一个 Python 编写的文件后缀批量修改工具,可以方便地修改一个文件夹下的所有文件的后缀名。
用户可以在 GUI 界面中选择要修改的文件夹,输入要修改的后缀名,并点击“开始修改”按钮,程序会自动遍历文件夹下的所有文件,并将后缀名不匹配的文件的后缀名修改为输入的后缀名。
同时,程序还会在 GUI 界面中显示进度条和修改完成标签;

使用该工具需要先安装 Python3,
并安装以下库:os、tkinter、filedialog 和 ttk。然后将代码保存为 batch_rename.py 文件,使用 PyInstaller 工具将其封装为无控制台、单文件的 exe 文件,以便用户可以方便地在没有 Python 环境的计算机上运行程序。
以下是完整的 Python 代码:
[Python] 纯文本查看 复制代码
import os
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk

def batch_rename(folder_path, extension, progressbar):
    """根据输入的后缀批量修改文件后缀"""
    total_files = sum([len(files) for r, d, files in os.walk(folder_path)])
    progress_increment = 100 / total_files
    current_progress = 0
    
    for root, dirs, files in os.walk(folder_path):
        for filename in files:
            _, file_extension = os.path.splitext(filename)
            if file_extension != extension:
                # 修改后缀为输入的后缀
                os.rename(os.path.join(root, filename), os.path.join(root, filename.split('.')[0] + extension))
            current_progress += progress_increment
            progressbar['value'] = current_progress
            progressbar.update()

class App:
    def __init__(self):
        self.window = tk.Tk()
        self.window.title('文件后缀修改工具')
        self.window.geometry('400x250')
        self.window.resizable(False, False)
        self.window.attributes('-toolwindow', True)
        
        # 标签
        self.label1 = tk.Label(self.window, text='选择文件夹:', font=('微软雅黑', 12))
        self.label1.place(x=20, y=20)
        
        # 文件夹选择按钮
        self.button1 = tk.Button(self.window, text='选择文件夹', font=('微软雅黑', 10), command=self.select_folder)
        self.button1.place(x=280, y=20)
        
        # 后缀输入框标签
        self.label4 = tk.Label(self.window, text='输入后缀:', font=('微软雅黑', 12))
        self.label4.place(x=20, y=60)
        
        # 后缀输入框
        self.extension_entry = tk.Entry(self.window, width=20)
        self.extension_entry.place(x=120, y=62)
        
        # 开始修改按钮
        self.button2 = tk.Button(self.window, text='开始修改', font=('微软雅黑', 10), command=self.start_rename)
        self.button2.place(x=170, y=110)
        
        # 进度条
        self.progressbar = ttk.Progressbar(self.window, mode='determinate', length=300)
        self.progressbar.place(x=50, y=170)
        self.progressbar['value'] = 0
        
        # 修改完成标签
        self.label3 = tk.Label(self.window, text='', font=('微软雅黑', 12))
        self.label3.place(x=170, y=210)
        
        # 文件夹路径标签
        self.label2 = tk.Label(self.window, text='', font=('微软雅黑', 10), fg='blue', wraplength=300, justify='left')
        self.label2.place(x=20, y=90)
        
    def select_folder(self):
        """选择文件夹"""
        folder_selected = filedialog.askdirectory()
        self.label2.config(text=folder_selected)
    
    def start_rename(self):
        """开始修改文件后缀"""
        try:
            folder_path = self.label2['text']
        except KeyError:
            # 未选择文件夹时给出提示
            self.label2.config(text='请选择文件夹!', fg='red')
            return
        extension = self.extension_entry.get()
        if not extension.startswith('.'):
            extension = '.' + extension
        self.progressbar['value'] = 0
        batch_rename(folder_path, extension, self.progressbar)
        self.label3.config(text='修改完成!', fg='green')
    def run(self):
    self.window.mainloop()

if name == 'main':
app = App()
app.run()


使用 PyInstaller 工具将上述代码封装为无控制台、单文件的 exe 文件的命令为:
[Shell] 纯文本查看 复制代码
pyinstaller --onefile --noconsole batch_rename.py

该命令会在当前目录下生成 dist 文件夹,并在其中生成 batch_rename.exe 文件,这个文件就是封装好的可执行文件。
可以将该文件复制到任何地方,并在不需要安装 Python 环境的计算机上运行它。


链接:https://pan.baidu.com/s/1W6O_nlZ6FGAFAT92O0limw?pwd=x7ps
提取码:x7ps
复制这段内容后打开百度网盘手机App,操作更方便哦下面是运行截图

运行前

运行前

运行前

运行前

运行后

运行后



免费评分

参与人数 16吾爱币 +17 热心值 +13 收起 理由
狼族战天 + 1 + 1 谢谢@Thanks!
S1280P + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
speed333 + 1 + 1 我很赞同!
smilehahaha + 1 + 1 谢谢@Thanks!
dlyuang + 1 + 1 适用,谢谢楼主。
banpo + 1 已经处理,感谢您对吾爱破解论坛的支持!
ConDomCD + 1 + 1 谢谢@Thanks!
lybsanbai-2020 + 1 谢谢@Thanks!
sxnrh + 1 + 1 我很赞同!
zmllxh + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
JasonK + 1 可以直接bat ren *.png *.bin
hal1314 + 1 用心讨论,共获提升!
encai070201 + 1 谢谢@Thanks!
仿佛悟道 + 1 热心回复!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
结衣酱 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xiaoyao982 发表于 2023-3-23 21:09
感谢分享,收藏
kingzh 发表于 2023-3-26 12:48
有这个工具是挺好的,但一个文件夹内多种格式的,全改成一个了再修改后辍?能否筛选原后辍呢?比如把文件夹内txt后辍筛选出来再修改,这样是否会更方便些更人性一些呢?
yourbo 发表于 2023-3-23 14:21
wwei821 发表于 2023-3-23 14:25
感谢分享,这个好用!
简减 发表于 2023-3-23 16:04
很多批量改名工具都有批量修改扩展名的功能呀
飘浮 发表于 2023-3-23 17:33
看起来不错。。大佬能搞个RAR批量修改 删除 添加文件的工具吗?
lxseam 发表于 2023-3-23 19:32
甜有100种方式,吃糖,蛋糕,还有每天98次的想你。

免费评分

参与人数 2吾爱币 0 收起 理由
a402 + 1 请勿灌水,提高回帖质量是每位会员应尽的义务!
fortytwo -1 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

lxfdxx1 发表于 2023-3-23 19:57
好东西,多谢了
 楼主| fortytwo 发表于 2023-3-23 20:55
飘浮 发表于 2023-3-23 17:33
看起来不错。。大佬能搞个RAR批量修改 删除 添加文件的工具吗?

具体逻辑是什么样子呢
vx532432 发表于 2023-3-23 21:20
这个能加个功能,输入文件名吗?比如只批量修改baidu1.jpg baidu2.jpg为png  其他的jpg不被修改
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-11 04:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表