一、前言
前面我们写的所有程序都只能在黑框控制台运行,交互不够直观。Python 自带Tkinter图形界面库,无需额外安装,快速制作带窗口、按钮、输入框的可视化工具。
本篇从零搭建 GUI 程序,覆盖窗口、标签、输入框、按钮、弹窗等基础组件,最后把上一篇批量重命名脚本封装成可视化工具。
二、Tkinter 基础窗口创建
Tkinter 是 Python 标准库,直接 import 导入即可使用
python
运行
# 导入图形库所有组件
from tkinter import *
# 弹窗提示框
from tkinter import messagebox
# 1. 创建主窗口
root = Tk()
# 设置窗口标题
root.title("Python文件批量重命名工具")
# 设置窗口大小:宽x高
root.geometry("600x400")
# 2. 消息循环(窗口持续显示,必须写在最后)
root.mainloop()
运行后会弹出空白窗口,mainloop()负责监听鼠标点击、输入等操作。
三、常用基础组件讲解
1. Label 文字标签(展示静态文字)
python
运行
from tkinter import *
root = Tk()
root.geometry("500x300")
# 创建文字标签
label = Label(root, text="批量文件重命名工具", font=("微软雅黑",16))
# 布局放置组件 pack自动居中排列
label.pack(pady=20)
root.mainloop()
font=("字体",字号)修改文字样式pady=20上下外边距,padx左右边距
2. Entry 单行输入框(接收用户文字输入)
python
运行
from tkinter import *
root = Tk()
root.geometry(500,200)
Label(root,text="文件夹路径:").pack()
# 创建输入框,宽度50字符
path_input = Entry(root, width=50)
path_input.pack(pady=5)
# 获取输入框内容:path_input.get()
root.mainloop()
3. Button 按钮(点击触发函数)
python
运行
from tkinter import *
root = Tk()
def click_func():
# 点击按钮执行的代码
print("按钮被点击了!")
# 创建按钮,绑定点击函数
btn = Button(root, text="点击测试", command=click_func)
btn.pack(pady=30)
root.mainloop()
核心参数command=函数名,点击按钮自动执行对应函数。
4. messagebox 弹窗提示
python
运行
from tkinter import *
from tkinter import messagebox
root = Tk()
def show_msg():
# 信息弹窗
messagebox.showinfo("提示","操作执行成功!")
# 错误弹窗
# messagebox.showerror("错误","文件夹不存在")
# 确认弹窗
# res = messagebox.askyesno("确认","是否开始重命名?")
Button(root,text="弹出提示",command=show_msg).pack()
root.mainloop()
四、布局三种方式(简单项目优先 pack)
pack():自动上下 / 左右排列,适合简单页面grid():表格网格布局,多行多列整齐排版place():指定 x、y 坐标精准定位,复杂界面使用
五、完整实战:可视化批量重命名 GUI 工具
整合上一篇 os 批量重命名逻辑 + Tkinter 图形界面,可直接运行使用
python
运行
import os
from tkinter import *
from tkinter import messagebox
# 批量重命名核心函数
def batch_rename():
# 获取输入框内容
folder = path_entry.get().strip()
prefix = prefix_entry.get().strip()
filter_ext = ext_entry.get().strip()
# 输入校验
if not folder:
messagebox.showerror("输入错误","请填写文件夹路径!")
return
if not prefix:
messagebox.showerror("输入错误","请填写文件前缀名称!")
return
# 拆分过滤后缀,转为列表
allow_suffix = None
if filter_ext:
allow_suffix = [i.strip() for i in filter_ext.split(",")]
try:
if not os.path.exists(folder):
raise FileNotFoundError
file_list = os.listdir(folder)
count = 1
for filename in file_list:
old_path = os.path.join(folder, filename)
if not os.path.isfile(old_path):
continue
suffix = os.path.splitext(filename)[1]
# 过滤指定后缀
if allow_suffix and suffix not in allow_suffix:
continue
new_name = f"{prefix}_{count:02d}{suffix}"
new_path = os.path.join(folder, new_name)
os.rename(old_path, new_path)
count += 1
messagebox.showinfo("执行完成", f"成功重命名 {count-1} 个文件!")
except FileNotFoundError:
messagebox.showerror("路径错误","目标文件夹不存在,请检查路径!")
except Exception as e:
messagebox.showerror("运行异常", f"程序出错:{str(e)}")
# 搭建GUI界面
window = Tk()
window.title("文件批量重命名工具 V1.0")
window.geometry("620x320")
# 标题
Label(window, text="Python批量文件重命名工具", font=("微软雅黑",16)).pack(pady=12)
# 文件夹路径输入
Label(window, text="目标文件夹路径:").pack()
path_entry = Entry(window, width=70)
path_entry.pack(pady=4)
# 文件前缀输入
Label(window, text="自定义文件前缀:").pack()
prefix_entry = Entry(window, width=70)
prefix_entry.pack(pady=4)
# 过滤后缀输入
Label(window, text="仅处理指定后缀(多个用逗号分隔,留空处理全部文件,例:.jpg,.png):").pack()
ext_entry = Entry(window, width=70)
ext_entry.pack(pady=4)
# 执行按钮
start_btn = Button(window, text="开始批量重命名", bg="#409EFF", fg="white", font=("微软雅黑",12), command=batch_rename)
start_btn.pack(pady=18)
# 启动窗口循环
window.mainloop()
使用操作说明
目标文件夹路径:填写本地文件夹完整路径,如
r"C:\Users\XXX\Desktop\图片"自定义文件前缀:重命名后的文件开头文字,如
风景仅处理指定后缀:填写
.jpg,.png只修改图片,留空则修改文件夹全部文件点击按钮自动执行,完成弹出成功提示
六、新手常见问题
Tkinter 导入报错:Linux 系统需手动安装
sudo apt install python3-tk,Windows/Mac 自带无需安装点击按钮无反应:检查
command绑定函数名是否写错,不要加括号输入内容获取为空:使用
.strip()去除前后空格窗口组件重叠:调整
pack(pady=数值)增加组件间距
七、下期预告
下一篇:Python requests 爬虫:静态网页数据爬取入门,实现网页文字、图片信息抓取。