用Python开发小工具管理收藏网址

作者:turbobin,三年银行后端开发经验,坐标深圳。python爱好者,熟悉python,java,COBOL, Rexx等多种开发语言,熟悉Django,scrapy等框架, 喜欢研究新技术,擅长数据分析和处理。出于对python的热爱,目前离职空窗期,正寻求一份专门从事python开发的工作。

笔者是Python中文社区的粉丝,一直关注社区文章的更新,从中学习收获了很多。在此影响下走上了Python开发的道路......这两天用Python鼓捣开发了一个软件,分享给同事,觉得很实用,可以大大提高工作效率,想通过Python中文社区平台分享出来给大家,希望给爱好Python的童鞋做参考,也希望能借此鼓励更多具有开源精神的开发者。废话不多说,talk is cheap,show me the code:

GitHub开源地址:

https://github.com/turbobin/Open-Manager

工作了一段时间发现,电脑桌面上已经满屏的常用软件、常用项目文件夹的快捷方式,一大堆的常用文档,浏览器上收藏的工作网址更是有100+,通常想打开一个文档、网址要寻找半天,有没有方法可以集中管理这些地址呢? 我用python tkinter + webbrowser写了一个地址收藏工具

功能:

  • 关键字搜索,字母不区分大小写
  • 添加:url网址,本地软件路径,本地文档路径
  • 选中删除
  • 双击/敲回车直接打开
  • 修改,可使用添加功能修改打开路径,起相同的名称,会覆盖原来的路径

原理:

导入库 tkinter,webbrowser均为python标准库,不需要另外安装

import tkinter as tk
 import json
 import webbrowser
 from tkinter import messagebox
 from tkinter import *

使用python自带界面开发库tkinter开发基本界面

if __name__ == '__main__':
     root = Tk()  # 构造窗体
     root.title('Open Everything') # 标题
     root.iconbitmap('opentool.ico') # 加载图标

     root.resizable(0,0) # 固定窗口大小
     app = Application(master=root)

读取json文件,加载数据到Listbox

self.urllist = self.readUrlList() # 获取列表
 if self.urllist:
     self.createWidgets()
     self.mainloop()
 else:
     messagebox.showinfo('Error','读取地址列表失败!请查看openlist.json文件是否存在并且格式正确。')
# 加载地址列表
     for item in self.urllist:
         self.listbox.insert(END, item)  # 从尾部插入

添加事件处理

def doevent(self):
     self.keywdbox.bind("<Return>",self.showlist) # 按回车键,显示搜索结果
     self.keywdbox.bind("<BackSpace>",self.showlistAll)
     self.listbox.bind('<Double-Button-1>',self.openurl) # 双击打开地址
     self.listbox.bind('<Return>',self.openurl) # 按Enter键打开地址

使用webbrowser.open(url)方法打开路径 这个方法比较强大,如果是http地址,会直接在浏览器中打开,如果是本地地址,会直接打开软件/文件夹/文档...

def openurl(self,event):
     urlname = self.listbox.get(self.listbox.curselection())
     url = self.urllist[urlname] # 根据key值获取对应url值

     if url is not None and url != '':
         webbrowser.open(url)
     else:
         messagebox.showinfo('Error !', '打开地址失败!地址为空。')

搜索功能 搜索功能实现比较简单,遍历字典key值,判断关键字是否存在key中

def showlist(self, event):
     keywd = self.keywdbox.get().strip()
     if keywd:
         self.listbox.delete(0, END) # 先做清空列表动作

         for item in self.urllist:
             if keywd.lower() in item.lower():   # 判断关键字是否存在字典key中
                 self.listbox.insert(END, item)  # 加载搜索结果

退出软件时重新保存json文件

def savaUrllist(self):
     with open('openlist.json', 'w', encoding='utf-8') as f:
         json.dump(self.urllist,f, ensure_ascii=False, indent=2)

     print('文件保存成功。')

打包软件 win下使用pyinstaller Mac下使用py2app

使用教程

  • 获取软件和源码:https://github.com/turbobin/Open-Manager
  • 下载OpenTool.exe,解压到本地路径即可使用。

原文发布于微信公众号 - Python中文社区(python-china)

原文发表时间:2018-07-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网杂技

为何webpack风靡全球?三大主流模块打包工具对比

前端的模块系统经历了长久的演变,对应的模块打包方案也几经变迁。从最初简单的文件合并,到AMD 的模块具名化并合并,再到browserify将CommonJS 模...

3818
来自专栏编程

左手用R右手Python系列——使用多进程进行任务处理

数据抓取中的密集任务处理,往往会涉及到性能瓶颈,这时候如果能有多进程的工具来进行支持,那么往往效率会提升很多。 今天这一篇分享在R语言、Python中使用调用多...

2168
来自专栏繁花云

利用Speedtest测试服务器网速

speedtest是由国外用户sivel编写的一款跨平台的网速测试软件,使用GO编写,支持大部分平台

3790
来自专栏Albert陈凯

zookeeper详解

Zookeeper--Zookeeper是什么 博客借鉴http://www.cnblogs.com/yuyijq/p/3391945.html​ Googl...

3263
来自专栏北京马哥教育

etcd:从应用场景到实现原理的全方位解读

马哥linux运维 | 最专业的linux培训机构 ---- 随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作...

52012
来自专栏晨星先生的自留地

SSRF漏洞详解

3854
来自专栏编程

在Linux中,一切都是文件

每个人都知道一个文件是什么...这就是你使用的“照片”,“文档”或“音乐”。程序是由文件组成的,实际上,整个Linux操作系统只是一个文件集合...但是,现在是...

20510
来自专栏跟着阿笨一起玩NET

C#消息队列(RabbitMQ)零基础从入门到实战演练

2602
来自专栏张戈的专栏

Linux系统内存监控、性能诊断工具vmstat命令详解

最近,烦心事有点多,博客也像是进入了便秘期。虽然还远远不到说放弃的地步,但总有一种挤不出牙膏的郁闷感。很怀念前几个月的冲劲和激情,一天都能存好几篇优质草稿。 看...

3485
来自专栏FreeBuf

自己动手打造Github代码泄露监控工具

众说周知,Github这块肥肉很受安全人员和黑客关注。因为很多新进程序猿和老手不经意就会把他们的劳动成果分享出来,而往往这种开源精神,奉献精神会对企业带来一定的...

1672

扫码关注云+社区

领取腾讯云代金券