- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python实现查询剪贴板自动匹配信息的思路详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
不想每次都要去查execl,想更方便点,更快一点.
通俗点思路:点击exe,python 自动监控剪贴板的内容,然后正则取出ip,接着根据ip对比业务文档,获取相应的信息,然后把查询出来的内容,弹出提示,把查询出的内容写入剪贴板.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
'''
功能作用:对比剪贴板类容
'''
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打包.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文件:
修改前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查询剪贴板内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/heian_99/article/details/118579426 。
最后此篇关于Python实现查询剪贴板自动匹配信息的思路详解的文章就讲到这里了,如果你想了解更多关于Python实现查询剪贴板自动匹配信息的思路详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有三张 table 。表 A 有选项名称(即颜色、尺寸)。表 B 有选项值名称(即蓝色、红色、黑色等)。表C通过将选项名称id和选项名称值id放在一起来建立关系。 我的查询需要显示值和选项的名称,而
在mysql中,如何计算一行中的非空单元格?我只想计算某些列之间的单元格,比如第 3-10 列之间的单元格。不是所有的列...同样,仅在该行中。 最佳答案 如果你想这样做,只能在 sql 中使用名称而
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
我正在为版本7.6进行Elasticsearch查询 我的查询是这样的: { "query": { "bool": { "should": [ {
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
是否可以编写一个查询来检查任一子查询(而不是一个子查询)是否正确? SELECT * FROM employees e WHERE NOT EXISTS (
我找到了很多关于我的问题的答案,但问题没有解决 我有表格,有数据,例如: Data 1 Data 2 Data 3
以下查询返回错误: 查询: SELECT Id, FirstName, LastName, OwnerId, PersonEmail FROM Account WHERE lower(PersonEm
以下查询返回错误: 查询: SELECT Id, FirstName, LastName, OwnerId, PersonEmail FROM Account WHERE lower(PersonEm
我从 EditText 中获取了 String 值。以及提交查询的按钮。 String sql=editQuery.getText().toString();// SELECT * FROM empl
我有一个或多或少有效的查询(关于结果),但处理大约需要 45 秒。这对于在 GUI 中呈现数据来说肯定太长了。 所以我的需求是找到一个更快/更高效的查询(几毫秒左右会很好)我的数据表大约有 3000
这是我第一次使用 Stack Overflow,所以我希望我以正确的方式提出这个问题。 我有 2 个 SQL 查询,我正在尝试比较和识别缺失值,尽管我无法将 NULL 字段添加到第二个查询中以识别缺失
什么是动态 SQL 查询?何时需要使用动态 SQL 查询?我使用的是 SQL Server 2005。 最佳答案 这里有几篇文章: Introduction to Dynamic SQL Dynami
include "mysql.php"; $query= "SELECT ID,name,displayname,established,summary,searchlink,im
我有一个查询要“转换”为 mysql。这是查询: select top 5 * from (select id, firstName, lastName, sum(fileSize) as To
通过我的研究,我发现至少从 EF 4.1 开始,EF 查询上的 .ToString() 方法将返回要运行的 SQL。事实上,这对我来说非常有用,使用 Entity Framework 5 和 6。 但
我在构造查询来执行以下操作时遇到问题: 按activity_type_id过滤联系人,仅显示最近事件具有所需activity_type_id或为NULL(无事件)的联系人 表格结构如下: 一个联系人可
如何让我输入数据库的信息在输入数据 5 分钟后自行更新? 假设我有一张 table : +--+--+-----+ |id|ip|count| +--+--+-----+ |
我正在尝试搜索正好是 4 位数字的 ID,我知道我需要使用 LENGTH() 字符串函数,但找不到如何使用它的示例。我正在尝试以下(和其他变体)但它们不起作用。 SELECT max(car_id)
我有一个在 mysql 上运行良好的 sql 查询(查询 + 连接): select sum(pa.price) from user u , purchase pu , pack pa where (
我是一名优秀的程序员,十分优秀!