♚
作者 : turbobin,三年银行后端开发经验,坐标深圳。python爱好者,熟悉python,java,COBOL, Rexx等多种开发语言,熟悉Django,scrapy等框架, 喜欢研究新技术,擅长数据分析和处理。出于对python的热爱,目前离职空窗期,正寻求一份专门从事python开发的工作。
笔者是Python中文社区的粉丝,一直关注社区文章的更新,从中学习收获了很多。在此影响下走上了Python开发的道路......这两天用Python鼓捣开发了一个软件,分享给同事,觉得很实用,可以大大提高工作效率,想通过Python中文社区平台分享出来给大家,希望给爱好Python的童鞋做参考,也希望能借此鼓励更多具有开源精神的开发者。废话不多说,talk is cheap,show me the code:
GitHub开源地址:
1. `https
:
//github.com/turbobin/Open-Manager`
工作了一段时间发现,电脑桌面上已经满屏的常用软件、常用项目文件夹的快捷方式,一大堆的常用文档,浏览器上收藏的工作网址更是有100+,通常想打开一个文档、网址要寻找半天,有没有方法可以集中管理这些地址呢? 我用python tkinter + webbrowser写了一个地址收藏工具
功能:
- 关键字搜索,字母不区分大小写
- 添加:url网址,本地软件路径,本地文档路径
- 选中删除
- 双击/敲回车直接打开
- 修改,可使用添加功能修改打开路径,起相同的名称,会覆盖原来的路径
原理:
导入库 tkinter,webbrowser均为python标准库,不需要另外安装
1. `import tkinter as tk`
2. `import json`
3. `import webbrowser`
4. `from tkinter import messagebox`
5. `from tkinter import *`
使用python自带界面开发库tkinter开发基本界面
1. `if __name__ == '__main__':`
2. `root = Tk() # 构造窗体`
3. `root.title('Open Everything') # 标题`
4. `root.iconbitmap('opentool.ico') # 加载图标`
5.
6. `root.resizable(0,0) # 固定窗口大小`
7. `app = Application(master=root)`
读取json文件,加载数据到Listbox
1. `self.urllist = self.readUrlList() # 获取列表`
2. `if self.urllist:`
3. `self.createWidgets()`
4. `self.mainloop()`
5. `else:`
6. `messagebox.showinfo('Error','读取地址列表失败!请查看openlist.json文件是否存在并且格式正确。')`
1. `# 加载地址列表`
2. `for item in self.urllist:`
3. `self.listbox.insert(END, item) # 从尾部插入`
添加事件处理
1. `def doevent(self):`
2. `self.keywdbox.bind("<Return>",self.showlist) # 按回车键,显示搜索结果`
3. `self.keywdbox.bind("<BackSpace>",self.showlistAll)`
4. `self.listbox.bind('<Double-Button-1>',self.openurl) # 双击打开地址`
5. `self.listbox.bind('<Return>',self.openurl) # 按Enter键打开地址`
使用webbrowser.open(url)方法打开路径 这个方法比较强大,如果是http地址,会直接在浏览器中打开,如果是本地地址,会直接打开软件/文件夹/文档...
1. `def openurl(self,event):`
2. `urlname = self.listbox.get(self.listbox.curselection())`
3. `url = self.urllist[urlname] # 根据key值获取对应url值`
4.
5. `if url is not None and url != '':`
6. `webbrowser.open(url)`
7. `else:`
8. `messagebox.showinfo('Error !', '打开地址失败!地址为空。')`
搜索功能 搜索功能实现比较简单,遍历字典key值,判断关键字是否存在key中
1. `def showlist(self, event):`
2. `keywd = self.keywdbox.get().strip()`
3. `if keywd:`
4. `self.listbox.delete(0, END) # 先做清空列表动作`
5.
6. `for item in self.urllist:`
7. `if keywd.lower() in item.lower(): # 判断关键字是否存在字典key中`
8. `self.listbox.insert(END, item) # 加载搜索结果`
退出软件时重新保存json文件
1. `def savaUrllist(self):`
2. `with open('openlist.json', 'w', encoding='utf-8') as f:`
3. `json.dump(self.urllist,f, ensure_ascii=False, indent=2)`
4.
5. `print('文件保存成功。')`
打包软件 win下使用pyinstaller Mac下使用py2app
使用教程
-
下载OpenTool.exe,解压到本地路径即可使用。
Python中文社区作为一个去中心化的全球技术社区,以成为全球20万Python中文开发者的精神部落为愿景,目前覆盖各大主流媒体和协作平台,与阿里、腾讯、百度、微软、亚马逊、开源中国、CSDN等业界知名公司和技术社区建立了广泛的联系,拥有来自十多个国家和地区数万名登记会员,会员来自以公安部、工信部、清华大学、北京大学、北京邮电大学、中国人民银行、中科院、中金、华为、BAT、谷歌、微软等为代表的政府机关、科研单位、金融机构以及海内外知名公司,全平台近20万开发者关注。
▼ 点击下方 阅读原文 , 免费成为 社区会员
