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中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 Python
python实现的文件夹清理程序分享
Nov 22 Python
Python入门_浅谈数据结构的4种基本类型
May 16 Python
Python创建二维数组实例(关于list的一个小坑)
Nov 07 Python
python不换行之end=与逗号的意思及用途
Nov 21 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
python删除服务器文件代码示例
Feb 09 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
Python 如何在字符串中插入变量
Aug 01 Python
pytorch 中nn.Dropout的使用说明
May 20 Python
详解解Django 多对多表关系的三种创建方式
Aug 23 Python
Python游戏开发实例之graphics实现AI五子棋
Nov 01 Python
如何利用Python实现一个论文降重工具
python实现MD5进行文件去重的示例代码
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 #Python
Python中Selenium对Cookie的操作方法
Python常用配置文件ini、json、yaml读写总结
图文详解matlab原始处理图像几何变换
Django中session进行权限管理的使用
You might like
php下连接mssql2005的代码
2011/01/17 PHP
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
PHP的PSR规范中文版
2013/09/28 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
python求质数的3种方法
2018/09/28 Python
Python的互斥锁与信号量详解
2019/09/12 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
廉政教育心得体会
2014/01/01 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
服务器间如何实现文件共享
2022/05/20 Servers