用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
讀取json檔案,載入資料到Listbox
self.urllist =self.readUrlList()# 獲取列表
ifself.urllist:
self.createWidgets()
self.mainloop()
else:
messagebox.showinfo('Error','讀取地址列表失敗!請檢視openlist.json檔案是否存在並且格式正確。')
# 載入地址列表
for item inself.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 isnotNoneand 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 inself.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中文社群作為一個去中心化的全球技術社群,以成為全球20萬Python中文開發者的精神部落為願景,目前覆蓋各大主流媒體和協作平臺,與阿里、騰訊、百度、微軟、亞馬遜、開源中國、CSDN等業界知名公司和技術社群建立了廣泛的聯絡,擁有來自十多個國家和地區數萬名登記會員,會員來自以公安部、工信部、清華大學、北京大學、北京郵電大學、中國人民銀行、中科院、中金、華為、BAT、谷歌、微軟等為代表的政府機關、科研單位、金融機構以及海內外知名公司,全平臺近20萬開發者關注。
▼ 點選下方閱讀原文,免費成為社群會員