文件后缀批量修改工具

2次阅读
没有评论

悬赏区的一个网友需要,写了个代码批量修改后缀;
这是一个 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,操作更方便哦下面是运行截图

正文完
 0
116博客
版权声明:本篇文章由 116博客 于2024-11-28发表,共计2882字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码