
用Python写了一个实用小工具,但只能在黑乎乎的命令行里运行?今天我要教你一招:只需加两行代码,立刻让你的程序变身高颜值GUI应用!
大家好,我是逍遥。最近收到不少读者反馈,说写了一些实用的Python脚本,但是让其他人用起来不太方便。确实,不是所有人都会用命令行,如果能有个漂亮的图形界面就好了。
那么今天我就给大家介绍一个超级简单的GUI库 - Gooey。它的特点是:只需要加两行代码,就能让你的命令行程序秒变界面应用。
Gooey是一个能让Python命令行程序"化茧成蝶"的神奇工具。它最大的特点就是使用门槛极低,基本上不需要学习任何GUI编程知识。
来看看它能干啥:
自动生成漂亮的程序界面
支持文件选择、下拉菜单等各种控件
可以自定义界面主题和语言
还能打包成独立的exe程序分享给别人
首先安装Gooey:
pip install Gooey
来写个最简单的例子感受一下:
from gooey import Gooey, GooeyParser
@Gooey(language='chinese')
def main():
parser = GooeyParser(description="我的第一个GUI程序")
parser.add_argument("name", help="请输入你的名字")
args = parser.parse_args()
print(f"你好, {args.name}!")
if __name__ == '__main__':
main()
就这么简单!运行一下,你会看到一个精美的界面弹出来。

光说不练假把式,来做个实用的小工具 - 批量给照片重命名:
import os
from datetime import datetime
from gooey import Gooey, GooeyParser
@Gooey(
program_name="照片批量重命名工具",
language='chinese',
default_size=(600, 500)
)
def main():
parser = GooeyParser(description="给照片按拍摄时间重命名")
parser.add_argument(
"folder_path",
help="选择照片所在文件夹",
widget="DirChooser"
)
parser.add_argument(
"--prefix",
default="IMG_",
help="文件名前缀"
)
args = parser.parse_args()
# 重命名照片
renamed = 0
for filename in os.listdir(args.folder_path):
if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
file_path = os.path.join(args.folder_path, filename)
# 获取照片修改时间
mtime = datetime.fromtimestamp(os.path.getmtime(file_path))
# 新文件名
new_name = f"{args.prefix}{mtime.strftime('%Y%m%d_%H%M%S')}.jpg"
new_path = os.path.join(args.folder_path, new_name)
os.rename(file_path, new_path)
renamed += 1
print(f"已重命名: {filename} -> {new_name}")
print(f"\n完成!共重命名了 {renamed} 张照片")
if __name__ == '__main__':
main()
这个小工具可以:
通过可视化界面选择照片文件夹
自定义文件名前缀
自动按照照片的修改时间重命名
支持常见图片格式(.jpg/.png等)

Gooey还有很多强大的功能:
@Gooey(
program_name="图片处理工具",
navigation="TABBED" # 使用选项卡式布局
)
def main():
parser = GooeyParser()
rename_group = parser.add_argument_group(
"重命名",
"批量重命名照片"
)
rename_group.add_argument("folder_path", widget="DirChooser")
compress_group = parser.add_argument_group(
"压缩",
"压缩图片文件"
)
compress_group.add_argument("quality", widget="Slider", gooey_options={
'min': 1, 'max': 100
})
@Gooey(
program_name="我的应用",
body_bg_color="#FFFFFF",
header_bg_color="#6A8759",
footer_bg_color="#6A8759"
)
from gooey import Gooey, GooeyParser
import time
@Gooey(progress_regex=r"^progress: (\d+)$")
def main():
parser = GooeyParser()
args = parser.parse_args()
for i in range(100):
print(f"progress: {i+1}") # Gooey会捕获这个输出并更新进度条
time.sleep(0.1)
写好程序后,我们可以用PyInstaller把它打包成独立的exe文件:
pip install pyinstaller
pyinstaller --windowed --name MyApp main.py
打包完成后,在dist文件夹里就能找到可以直接运行的exe文件了。
Gooey是个非常友好的GUI库,尤其适合:
Python初学者入门GUI编程
快速给命令行工具添加界面
制作小工具分享给普通用户
建议大家把玩一下,相信很快就能做出自己的第一个GUI程序!
转发、收藏、在看,是对作者最大的鼓励!👏