利用python开发自己的小工具
- 手机
- 2025-09-11 20:09:01

从最简单的开始:你的第一个GUI程序
首先,我们要用到tkinter库,它是Python自带的,不需要额外安装:
importtkinterastk # 创建主窗口 window=tk.Tk() window.title("我的第一个GUI程序") window.geometry("300x200") # 添加一个标签 label=tk.Label(window, text="你好,Python!", font=("微软雅黑", 16)) label.pack() # 添加一个按钮 defsay_hello(): print("大家好!") button=tk.Button(window, text="点我打招呼", command=say_hello) button.pack() # 运行程序 window.mainloop()把这段代码保存为hello.py,运行它,瞬间就能看到一个简单的窗口程序!
进阶:打造实用小工具来做点实际的东西!比如一个文件重命名工具:
importtkinterastk fromtkinterimportfiledialog importos classFileRenamer: def__init__(self): self.window=tk.Tk() self.window.title("文件批量重命名工具") self.window.geometry("400x300") # 选择文件夹按钮 self.select_btn=tk.Button( self.window, text="选择文件夹", command=self.select_folder ) self.select_btn.pack(pady=10) # 显示选中路径 self.path_label=tk.Label( self.window, text="未选择文件夹", wraplength=350 ) self.path_label.pack(pady=5) # 前缀输入框 tk.Label(self.window, text="请输入文件名前缀:").pack(pady=5) self.prefix=tk.Entry(self.window) self.prefix.pack() # 开始重命名按钮 self.rename_btn=tk.Button( self.window, text="开始重命名", command=self.rename_files ) self.rename_btn.pack(pady=20) # 状态显示 self.status=tk.Label(self.window, text="") self.status.pack(pady=10) defselect_folder(self): folder=filedialog.askdirectory() iffolder: self.folder_path=folder self.path_label.config(text=f"已选择: {folder}") defrename_files(self): ifnothasattr(self, 'folder_path'): self.status.config(text="请先选择文件夹!") return prefix=self.prefix.get() ifnotprefix: self.status.config(text="请输入前缀!") return try: files=os.listdir(self.folder_path) fori, fileinenumerate(files, 1): old_path=os.path.join(self.folder_path, file) new_name=f"{prefix}_{i}{os.path.splitext(file)[1]}" new_path=os.path.join(self.folder_path, new_name) os.rename(old_path, new_path) self.status.config(text=f"成功重命名{len(files)}个文件!") exceptExceptionase: self.status.config(text=f"出错了:{str(e)}") if__name__=="__main__": app=FileRenamer() app.window.mainloop()这个小工具可以:
选择目标文件夹
输入文件名前缀
一键重命名所有文件
实用吧?而且代码结构清晰,注释详细,拿来就能用!
高级技巧:美化你的应用光有功能还不够,咱们来给应用加点颜色!推荐使用customtkinter库,它能让你的程序看起来超级专业:
importcustomtkinterasctk classModernApp: def__init__(self): # 设置主题 ctk.set_appearance_mode("dark") ctk.set_default_color_theme("blue") # 创建窗口 self.window=ctk.CTk() self.window.title("现代化应用") self.window.geometry("500x400") # 创建标签 self.label=ctk.CTkLabel( self.window, text="现代化的Python应用", font=("微软雅黑", 20) ) self.label.pack(pady=20) # 创建输入框 self.entry=ctk.CTkEntry( self.window, placeholder_text="请输入内容" ) self.entry.pack(pady=10) # 创建按钮 self.button=ctk.CTkButton( self.window, text="点击我", command=self.button_click ) self.button.pack(pady=10) # 创建进度条 self.progress=ctk.CTkProgressBar(self.window) self.progress.pack(pady=10) self.progress.set(0.7) # 创建开关 self.switch=ctk.CTkSwitch( self.window, text="开启/关闭" ) self.switch.pack(pady=10) defbutton_click(self): text=self.entry.get() iftext: self.label.configure(text=f"你输入了:{text}") if__name__=="__main__": app=ModernApp() app.window.mainloop() 打包发布:让所有人都能用上你的软件写好程序后,最后一步是打包。我们用pyinstaller把程序打包成exe文件:
# 先安装pyinstaller pipinstallpyinstaller # 打包命令 pyinstaller--windowed--icon=app.ico--name="我的应用"main.py 实战项目:便签本应用让我们把学到的知识组合起来,做一个实用的便签本:
importtkinterastk fromtkinterimportmessagebox importjson importos classNoteApp: def__init__(self): self.window=tk.Tk() self.window.title("我的便签本") self.window.geometry("500x400") # 加载笔记 self.notes=self.load_notes() # 创建界面 self.create_widgets() defcreate_widgets(self): # 笔记列表 self.note_listbox=tk.Listbox(self.window, width=50) self.note_listbox.pack(pady=10) # 更新列表显示 self.update_note_list() # 输入框 self.note_entry=tk.Entry(self.window, width=50) self.note_entry.pack(pady=5) # 按钮框架 btn_frame=tk.Frame(self.window) btn_frame.pack(pady=5) # 添加按钮 tk.Button( btn_frame, text="添加笔记", command=self.add_note ).pack(side=tk.LEFT, padx=5) # 删除按钮 tk.Button( btn_frame, text="删除笔记", command=self.delete_note ).pack(side=tk.LEFT, padx=5) defload_notes(self): ifos.path.exists("notes.json"): withopen("notes.json", "r", encoding="utf-8") asf: returnjson.load(f) return [] defsave_notes(self): withopen("notes.json", "w", encoding="utf-8") asf: json.dump(self.notes, f, ensure_ascii=False) defupdate_note_list(self): self.note_listbox.delete(0, tk.END) fornoteinself.notes: self.note_listbox.insert(tk.END, note) defadd_note(self): note=self.note_entry.get().strip() ifnote: self.notes.append(note) self.save_notes() self.update_note_list() self.note_entry.delete(0, tk.END) else: messagebox.showwarning("警告", "请输入内容!") defdelete_note(self): selection=self.note_listbox.curselection() ifselection: index=selection[0] self.notes.pop(index) self.save_notes() self.update_note_list() else: messagebox.showwarning("警告", "请选择要删除的笔记!") if__name__=="__main__": app=NoteApp() app.window.mainloop()这个便签本应用包含了我们学到的所有知识点:
GUI设计
文件操作
事件处理
数据持久化
进阶提升方向学习更多GUI框架
PyQt5:功能强大,适合大型应用
Kivy:适合做跨平台应用
wxPython:原生界面,性能好
设计模式的运用
MVC架构
观察者模式
单例模式
性能优化技巧
使用多线程处理耗时操作
优化内存使用
提升响应速度
我们还可以将自己编写的程序,进行打包出来,提供给其他人进行使用
要将Python代码打包成可执行的`.exe`文件,可以使用`PyInstaller`工具。以下是详细步骤: 安装PyInstaller 首先,确保你已经安装了`PyInstaller`。如果没有安装,可以使用`pip`进行安装:
```bash pip install pyinstaller ```打包Python脚本 假设你的Python脚本名为`script.py`,你可以使用以下命令将其打包成`.exe`文件:
```bash pyinstaller --onefile script.py ``` - `--onefile` 参数会将所有依赖项打包成一个单独的`.exe`文件。 - 如果你不需要打包成一个文件,可以省略`--onefile`参数,这样会生成一个包含多个文件的目录。查找生成的`.exe`文件 打包完成后,生成的`.exe`文件会位于`dist`目录下。你可以在命令行中进入该目录并运行`.exe`文件:
```bash cd dist ./script.exe ```其他常用选项
- `--noconsole`:如果你的脚本是GUI应用程序,可以使用这个选项来隐藏控制台窗口。 - `--icon=icon.ico`:指定一个图标文件作为生成的可执行文件的图标。 - `--name=myapp`:指定生成的可执行文件的名称。例如:
```bash pyinstaller --onefile --noconsole --icon=icon.ico --name=myapp script.py ```处理依赖项 如果你的脚本依赖于其他文件(如图片、配置文件等),你可以使用`--add-data`选项将这些文件包含在打包过程中。例如:
```bash pyinstaller --onefile --add-data "path/to/datafile;." script.py ```在Windows上,路径分隔符使用`;`,在Linux/macOS上使用`:`。 清理临时文件 打包完成后,PyInstaller会生成一些临时文件和目录(如`build`目录)。你可以手动删除这些文件以节省空间。 注意事项 - 打包后的`.exe`文件可能会比较大,因为它包含了Python解释器和所有依赖项。 - 如果你在打包过程中遇到问题,可以查看生成的`build`目录中的日志文件以获取更多信息。 通过以上步骤,你就可以将Python代码打包成`.exe`文件并在没有Python环境的Windows系统上运行了。
利用python开发自己的小工具由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“利用python开发自己的小工具”