1. 程式人生 > >用Python開發小工具管理收藏網址

用Python開發小工具管理收藏網址

作者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寫了一個地址收藏工具

640?wx_fmt=png

640?wx_fmt=png

功能:

  • 關鍵字搜尋,字母不區分大小寫

  • 新增: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.     root.resizable(0,0)# 固定視窗大小

  6.     app =Application

    (master=root)

讀取json檔案,載入資料到Listbox

  1. self.urllist =self.readUrlList()# 獲取列表

  2. ifself.urllist:

  3. self.createWidgets()

  4. self.mainloop()

  5. else:

  6.     messagebox.showinfo('Error','讀取地址列表失敗!請檢視openlist.json檔案是否存在並且格式正確。')

  1. # 載入地址列表

  2. for item inself.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. if url isnotNoneand url !='':

  5.         webbrowser.open(url)

  6. else:

  7.         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. for item inself.urllist:

  6. if keywd.lower()in item.lower():# 判斷關鍵字是否存在字典key中

  7. 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. print('檔案儲存成功。')

打包軟體 win下使用pyinstaller Mac下使用py2app

640?wx_fmt=png

使用教程

  • 獲取軟體和原始碼:https://github.com/turbobin/Open-Manager

  • 下載OpenTool.exe,解壓到本地路徑即可使用。

640?wx_fmt=gif

Python中文社群作為一個去中心化的全球技術社群,以成為全球20萬Python中文開發者的精神部落為願景,目前覆蓋各大主流媒體和協作平臺,與阿里、騰訊、百度、微軟、亞馬遜、開源中國、CSDN等業界知名公司和技術社群建立了廣泛的聯絡,擁有來自十多個國家和地區數萬名登記會員,會員來自以公安部、工信部、清華大學、北京大學、北京郵電大學、中國人民銀行、中科院、中金、華為、BAT、谷歌、微軟等為代表的政府機關、科研單位、金融機構以及海內外知名公司,全平臺近20萬開發者關注。

640?wx_fmt=jpeg

▼ 點選下方閱讀原文免費成為社群會員