您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么用Python實(shí)現(xiàn)查詢剪貼板自動(dòng)匹配信息”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么用Python實(shí)現(xiàn)查詢剪貼板自動(dòng)匹配信息”吧!
不想每次都要去查execl,想更方便點(diǎn),更快一點(diǎn)。
通俗點(diǎn)思路:點(diǎn)擊exe,Python 自動(dòng)監(jiān)控剪貼板的內(nèi)容,然后正則取出IP,接著根據(jù)IP對(duì)比業(yè)務(wù)文檔,獲取相應(yīng)的信息,然后把查詢出來(lái)的內(nèi)容,彈出提示,把查詢出的內(nèi)容寫入剪貼板。
''' 功能作用:對(duì)比剪貼板類容 ''' import win32clipboard as w import win32con import xlrd from tkinter import messagebox import win32api, win32con import pyperclip import re import sys import os # print(__file__) path = os.path.dirname(os.path.abspath(__file__)) sys.intern(path) # print(path) # 獲取剪貼板中的內(nèi)容 def getText(): w.OpenClipboard() d = w.GetClipboardData(win32con.CF_TEXT) w.CloseClipboard() return (d).decode('GBK') # 設(shè)置剪貼板的類容 def set_text(aString): w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_TEXT, aString) w.CloseClipboard() # 生成資源文件目錄訪問(wèn)路徑 def resource_path(relative_path): if getattr(sys, 'frozen', False): # 是否Bundle Resource base_path = sys._MEIPASS else: base_path = os.path.abspath(".") return os.path.join(base_path, relative_path) # 獲取剪貼板中的ip,并判斷是否正常 def get_ip(ss_ip): ipList = re.findall(r'[0-9]+(?:\.[0-9]+){3}', ss_ip) # print(ipList) if ipList: return ipList else: win32api.MessageBox(0, "請(qǐng)您檢查復(fù)制是否帶有IP,請(qǐng)重新測(cè)試", "提醒", win32con.MB_OK) sys.exit(0) # 獲取xls中的數(shù)據(jù),和之前剪貼板的數(shù)據(jù)對(duì)比 def host(ss_ip): # 獲取execl的內(nèi)容,這邊是根據(jù)業(yè)務(wù)來(lái)分析 filename = resource_path(os.path.join("res", "hosts.xls")) # print(filename) # execl_hosts = './hosts.xls' data1 = xlrd.open_workbook(filename) page = data1.sheet_by_index(2) nrows1 = page.nrows ncols1 = page.ncols # 獲取ip host_ip = page.col_values(10) app = page.col_values(1) # 功能集群 purpose = page.col_values(2) # 用途 hostname = page.col_values(11) # 主機(jī)名稱 # print(host_ip) # 開(kāi)始對(duì)比數(shù)據(jù) start = 0 count = 1 # print(ss_ip) if str(ss_ip[0]) not in host_ip: win32api.MessageBox(0, f"暫無(wú)設(shè)備{ss_ip[0]}的信息", "未知設(shè)備", win32con.MB_OK) sys.exit(0) for k, item in enumerate(host_ip, start): # print(k,item,ss_ip[0]) if str(ss_ip[0]) == str(item): # print("正常:" + item, k) win32api.MessageBox(0, f"\t\t注意\n 主機(jī)ip:{item} 主機(jī)名稱:{hostname[k]} \n 功能集群:{app[k]} 主機(jī)用途:{purpose[k]}", "發(fā)現(xiàn)設(shè)備", win32con.MB_OK) pyperclip.copy(f"主機(jī)ip:{item} 主機(jī)名稱:{hostname[k]} \n 功能集群:{app[k]} 主機(jī)用途:{purpose[k]}") sys.exit(0) count = count + 1 def main(): ss_ip = getText() one_ip = get_ip(ss_ip) host(one_ip) if __name__ == '__main__': main()
測(cè)試效果:
Python打包.exe的方法大致有四種:py2exe, pyinstaller,cx_Freeze和nuitka。其中最常用的是pyinstaller。Pyinstaller本身不是python庫(kù),但依舊可以安裝python庫(kù)安裝方式安裝,生成的.exe可以跨多平臺(tái)使用,也能指定圖標(biāo)。
我們需要把使用到的資源文件都放在一個(gè)文件夾里。本文在當(dāng)前目錄下新建了一個(gè)名為res的子文件夾來(lái)存放資源文件,本文假設(shè)res內(nèi)的資源文件為hosts.xls
修改完.py文件后可以先運(yùn)行一下,保證無(wú)誤。然后通過(guò)cmd指令:
pyi-makespec -F beloved.py
生成.spec文件。如果要添加Icon等可以在這里就使用pyi-makespec --icon abc.jpg -F beloved.py語(yǔ)句生成spec文件。
接下來(lái),修改.spec文件:
修改前datas=[],本文這里把它改成上圖所示,意思是
將beloved.py當(dāng)前目錄下的res目錄(及其目錄中的文件)加入目標(biāo)exe中,在運(yùn)行時(shí)放在零時(shí)文件的根目錄下,名稱為res。
生成.exe文件以及其他相關(guān)文件
接下來(lái),我們便可以放心的生成.exe文件了。執(zhí)行cmd指令
pyinstaller -F beloved.spec
.exe文件生成在子文件dict中。到此便可以把.exe發(fā)給其他電腦端運(yùn)行了。.exe運(yùn)行比較慢,建議多等待,只要沒(méi)出現(xiàn)錯(cuò)誤提示就OK。
感謝各位的閱讀,以上就是“怎么用Python實(shí)現(xiàn)查詢剪貼板自動(dòng)匹配信息”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么用Python實(shí)現(xiàn)查詢剪貼板自動(dòng)匹配信息這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。