Python实现查询剪贴板自动匹配信息的思路详解


Posted in Python onJuly 09, 2021

不想每次都要去查execl,想更方便点,更快一点。

Python实现查询剪贴板自动匹配信息的思路详解

通俗点思路:点击exe,Python 自动监控剪贴板的内容,然后正则取出IP,接着根据IP对比业务文档,获取相应的信息,然后把查询出来的内容,弹出提示,把查询出的内容写入剪贴板。

'''
功能作用:对比剪贴板类容
'''
 
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)
# 获取剪贴板中的内容
def getText():
    w.OpenClipboard()
    d = w.GetClipboardData(win32con.CF_TEXT)
    w.CloseClipboard()
    return (d).decode('GBK')
 
 
# 设置剪贴板的类容
def set_text(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_TEXT, aString)
    w.CloseClipboard()
 
 
# 生成资源文件目录访问路径
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, "请您检查复制是否带有IP,请重新测试", "提醒", win32con.MB_OK)
        sys.exit(0)
 
 
# 获取xls中的数据,和之前剪贴板的数据对比
def host(ss_ip):
    # 获取execl的内容,这边是根据业务来分析
    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)  # 主机名称
    # print(host_ip)
 
    # 开始对比数据
    start = 0
    count = 1
    # print(ss_ip)
    if str(ss_ip[0]) not in host_ip:
        win32api.MessageBox(0, f"暂无设备{ss_ip[0]}的信息", "未知设备", 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 主机ip:{item}  主机名称:{hostname[k]} \n 功能集群:{app[k]}  主机用途:{purpose[k]}",
                                "发现设备", win32con.MB_OK)
            pyperclip.copy(f"主机ip:{item}  主机名称:{hostname[k]} \n 功能集群:{app[k]}  主机用途:{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()

测试效果:

Python实现查询剪贴板自动匹配信息的思路详解

Python实现查询剪贴板自动匹配信息的思路详解

打包资源生成exe

Python打包.exe的方法大致有四种:py2exe, pyinstaller,cx_Freeze和nuitka。其中最常用的是pyinstaller。Pyinstaller本身不是python库,但依旧可以安装python库安装方式安装,生成的.exe可以跨多平台使用,也能指定图标。

我们需要把使用到的资源文件都放在一个文件夹里。本文在当前目录下新建了一个名为res的子文件夹来存放资源文件,本文假设res内的资源文件为hosts.xls

修改完.py文件后可以先运行一下,保证无误。然后通过cmd指令:

pyi-makespec -F beloved.py

生成.spec文件。如果要添加Icon等可以在这里就使用pyi-makespec --icon abc.jpg -F beloved.py语句生成spec文件。
接下来,修改.spec文件:

Python实现查询剪贴板自动匹配信息的思路详解

修改前datas=[],本文这里把它改成上图所示,意思是

将beloved.py当前目录下的res目录(及其目录中的文件)加入目标exe中,在运行时放在零时文件的根目录下,名称为res。

生成.exe文件以及其他相关文件

接下来,我们便可以放心的生成.exe文件了。执行cmd指令

pyinstaller -F beloved.spec

.exe文件生成在子文件dict中。到此便可以把.exe发给其他电脑端运行了。.exe运行比较慢,建议多等待,只要没出现错误提示就OK。

参考地址:https://blog.csdn.net/qq_44685030/article/details/105096338

到此这篇关于Python实现查询剪贴板自动匹配信息的文章就介绍到这了,更多相关Python查询剪贴板内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python解析模块(ConfigParser)使用方法
Dec 10 Python
python文件写入实例分析
Apr 08 Python
浅析使用Python操作文件
Jul 31 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
Python实现决策树C4.5算法的示例
May 30 Python
PyCharm设置每行最大长度限制的方法
Jan 16 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
Python常用模块os.path之文件及路径操作方法
Dec 03 Python
python有几个版本
Jun 17 Python
Python如何输出警告信息
Jul 30 Python
python实现快速文件格式批量转换的方法
Oct 16 Python
如何利用Python实现一个论文降重工具
python实现MD5进行文件去重的示例代码
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 #Python
Python中Selenium对Cookie的操作方法
Python常用配置文件ini、json、yaml读写总结
图文详解matlab原始处理图像几何变换
Django中session进行权限管理的使用
You might like
用文本文件制作留言板提示(下)
2006/10/09 PHP
10个实用的PHP代码片段
2011/09/02 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
微信跳一跳python代码实现
2018/01/05 Python
Python简易版停车管理系统
2019/08/12 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
表扬信格式
2014/01/12 职场文书
如何写自我鉴定
2014/03/19 职场文书
常务副总经理任命书
2014/06/05 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
2014年党总支工作总结
2014/12/18 职场文书
市场部岗位职责范本
2015/04/15 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
初中政治教学工作总结
2015/08/13 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL