【python脚本】基于pyautogui的python脚本
一、什么是自动化
自动化是指使用技术手段模拟人工,执行重复性任务。准确率100%,高于人工。
自动化应用场景:
- 自动化测试
- 自动化运维
- 自动化办公
- 自动化游戏
二、pyautogui的使用
先使用 pip install pyautogui 指令安装这个第三方库
2.1 鼠标事件
2.1.1 鼠标移动,鼠标移动时间
import pyautogui as pa# 鼠标移动 x y
pa.moveTo(100, 100)# 鼠标移动时间
pa.moveTo(100, 100, 1)
pyautogui.moveTo()函数
参数原型
pyautogui.moveTo(x, y, duration=0.0, _pause=True)
参数解释
x
:目标位置的水平坐标(像素),是必需参数。坐标原点为屏幕左上角,向右为正方向。y
:目标位置的垂直坐标(像素),是必需参数。坐标原点为屏幕左上角,向下为正方向。duration
:可选参数,指定鼠标移动到目标位置所花费的时间(秒),默认值为0.0
,即瞬间移动到目标位置。你可以通过设置该参数,让鼠标以更自然的速度移动。_pause
:可选参数,是一个布尔值,默认值为True
。如果设置为True
,在函数执行完成后会暂停一段时间,该暂停时间由pyautogui.PAUSE
属性决定;如果设置为False
,则不会暂停。
2.1.2 鼠标偏移,鼠标偏移时间
import pyautogui as pa# 鼠标偏移
pa.move(100, 100)# 鼠标偏移时间
pa.move(100, 100, 1)
pyautogui.move()函数
函数原型
pyautogui.move(xOffset, yOffset, duration=0.0, _pause=True)
参数解释
xOffset
:必需参数,指定鼠标在水平方向上移动的像素数。正值表示向右移动,负值表示向左移动。yOffset
:必需参数,指定鼠标在垂直方向上移动的像素数。正值表示向下移动,负值表示向上移动。duration
:可选参数,指定鼠标完成移动所花费的时间(秒),默认值是0.0
,意味着瞬间移动。你可以设置这个参数,让鼠标以更自然的速度移动。_pause
:可选参数,是一个布尔值,默认值为True
。若设置为True
,函数执行完毕后会暂停一段时间,暂停时长由pyautogui.PAUSE
属性决定;若设置为False
,则不会暂停。
2.1.3 获取鼠标位置,屏幕分辨率
import pyautogui as pa# 获取屏幕分辨率
x, y = pa.size()
print(x, y)# 获取当前鼠标的位置
x, y = pa.position()
print(x, y)
pyautogui.size()函数
函数原型
pyautogui.size()
返回值
该函数返回一个包含两个整数的元组
(width, height)
,其中width
是屏幕的宽度,height
是屏幕的高度。
pyautogui.position()函数
函数原型
pyautogui.position()
返回值
该函数返回一个包含两个整数的元组
(x, y)
,其中x
是鼠标指针的水平坐标,y
是鼠标指针的垂直坐标。坐标原点为屏幕的左上角,水平向右为x
轴正方向,垂直向下为y
轴正方向。
2.1.4 实时获取鼠标当前位置
import pyautogui as pax, y = pa.position()while True:x1, y1 = pa.position()if x != x1 or y != y1:x, y = x1, y1print(x, y)
2.1.5 鼠标点击,鼠标点击次数
import pyautogui as papa.click(441, 123)
pyautogui.click()函数
函数原型
pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0, _pause=True)
参数解释
x
、y
:可选参数,指定鼠标点击的屏幕坐标位置。如果不提供这两个参数,默认在鼠标当前位置进行点击。clicks
:可选参数,指定点击的次数,默认值为1
,即单击操作。interval
:可选参数,指定每次点击之间的间隔时间(秒),默认值为0.0
。button
:可选参数,指定使用哪个鼠标按键进行点击,取值可以是'left'
(左键,默认值)、'middle'
(中键)或'right'
(右键)。duration
:可选参数,指定鼠标移动到点击位置所花费的时间(秒),默认值为0.0
,即瞬间移动到目标位置。_pause
:可选参数,是一个布尔值,默认值为True
。如果设置为True
,在函数执行完成后会暂停一段时间,该暂停时间由pyautogui.PAUSE
属性决定;如果设置为False
,则不会暂停。
2.1.6 鼠标按住,抬起
# 鼠标按住 button=右键right,中键middle
pa.mouseDown()# 鼠标抬起
pa.mouseUp()
pyautogui.mouseDown()函数
函数原型
pyautogui.mouseDown(x=None, y=None, button='left', _pause=True)
参数解释
x
、y
:可选参数,指定鼠标按下的屏幕坐标位置。如果不提供这两个参数,默认在鼠标当前位置按下按键。button
:可选参数,指定按下的鼠标按键,取值可以是'left'
(左键,默认值)、'middle'
(中键)或'right'
(右键)。_pause
:可选参数,是一个布尔值,默认值为True
。如果设置为True
,在函数执行完成后会暂停一段时间,该暂停时间由pyautogui.PAUSE
属性决定;如果设置为False
,则不会暂停。
pyautogui.mouseUp()函数
函数原型
pyautogui.mouseUp(x=None, y=None, button='left', _pause=True)
参数解释
x
、y
:可选参数,指定鼠标释放的屏幕坐标位置。如果不提供这两个参数,默认在鼠标当前位置释放按键。button
:可选参数,指定释放的鼠标按键,取值可以是'left'
(左键,默认值)、'middle'
(中键)或'right'
(右键)。_pause
:可选参数,是一个布尔值,默认值为True
。如果设置为True
,在函数执行完成后会暂停一段时间,该暂停时间由pyautogui.PAUSE
属性决定;如果设置为False
,则不会暂停。
2.1.7 鼠标滑轮滚动
# 鼠标滑动
# 正数往上滑动 负数往下滑动
pa.scroll(-3000)
pyautogui.scroll()函数
函数原型
pyautogui.scroll(clicks, x=None, y=None, _pause=True)
参数解释
clicks
:这是一个必需参数,用于指定滚动的 “步数” 或 “刻度”。正数表示向上滚动,负数表示向下滚动。滚动幅度大小可能因操作系统和应用程序而异。x
、y
:可选参数,指定滚动操作发生的屏幕坐标位置。若不提供,默认在鼠标当前位置进行滚动。_pause
:可选参数,为布尔值,默认值是True
。若设置为True
,函数执行完成后会暂停一段时间,暂停时长由pyautogui.PAUSE
属性决定;若设置为False
,则不会暂停。
2.2 键盘事件
2.2.1 键盘输入,间隔时间
# 键盘输入 不支持中文
pa.write('qwrewrsfdfs')
pyautogui.write()函数
函数原型
pyautogui.write(message, interval=0.0, _pause=True)
参数解释
message
:必需参数,代表要输入的文本内容,可以是字符串。interval
:可选参数,指定每个字符输入之间的间隔时间(秒),默认值为0.0
,即尽可能快地输入。你可以通过设置该参数来控制输入速度,使输入看起来更自然。_pause
:可选参数,是一个布尔值,默认值为True
。如果设置为True
,在函数执行完成后会暂停一段时间,该暂停时间由pyautogui.PAUSE
属性决定;如果设置为False
,则不会暂停。
2.2.2 按键输入,次数,间隔
# 按键输入
pa.press('enter')
pyatuogui.press()函数
函数原型
pyautogui.press(keys, presses=1, interval=0.0, _pause=True)
参数解释
keys
:必需参数,可以是单个按键名称的字符串,也可以是包含多个按键名称的列表。按键名称可以是字母(如'a'
、'b'
)、数字(如'1'
、'2'
)、特殊字符(如'space'
表示空格、'enter'
表示回车键)等。完整的按键名称列表可以参考pyautogui
文档。presses
:可选参数,指定按键的按下次数,默认值为1
。interval
:可选参数,指定每次按键之间的间隔时间(秒),默认值为0.0
。_pause
:可选参数,是一个布尔值,默认值为True
。如果设置为True
,在函数执行完成后会暂停一段时间,该暂停时间由pyautogui.PAUSE
属性决定;如果设置为False
,则不会暂停。
2.2.3 组合按键
# 组合按键
pa.hotkey('ctrl', 'v')
pyautogui.hotkey()函数
函数原型
pyautogui.hotkey(*keys, interval=0.0, _pause=True)
参数解释
*keys
:这是一个可变参数,要求传入多个字符串,每个字符串代表一个按键。函数会按顺序依次按下这些按键,最后再按相反顺序释放这些按键,以此模拟组合键操作。比如,要模拟Ctrl+S
,就传入'ctrl'
和's'
。interval
:可选参数,用于指定按下每个按键之间的间隔时间(秒),默认值是0.0
。_pause
:可选参数,是一个布尔值,默认值为True
。若设置为True
,函数执行完毕后会暂停一段时间,暂停时长由pyautogui.PAUSE
属性决定;若设置为False
,则不会暂停。
2.2.4 更便捷的输出中文
# 更便捷的输出中文
# 导包:import pyperclipimport pyautogui as pa
import time
import pyperclippa.click(110, 100)
pa.sleep(2)
a1 = '打发程序员'
pyperclip.copy(a1)
pa.hotkey('ctrl', 'v')
2.2.5 按键按住,抬起
# 按键的按住、抬起
pa.keyDown('shift')
pa.keyUp('shift')
pyautogui.keyDown()函数
函数原型
pyautogui.keyDown(key, _pause=True)
参数解释
key
:必需参数,为字符串类型,表示要按下的按键名称。例如,要按下字母a
,则传入'a'
;若要按下回车键,传入'enter'
。常见的按键名称包括字母、数字、特殊字符(如'space'
代表空格)以及功能键(如'ctrl'
、'alt'
、'shift'
)等。你可以查阅pyautogui
官方文档获取完整的按键名称列表。_pause
:可选参数,布尔值,默认值为True
。若设置为True
,函数执行完毕后会暂停一段时间,暂停时长由pyautogui.PAUSE
属性决定;若设置为False
,则不会暂停。
pyautogui.keyUp()函数
函数原型
pyautogui.keyUp(key, _pause=True)
参数解释
key
:这是必需参数,是一个字符串类型,代表要释放的按键名称。按键名称可以是字母(如'a'
、'b'
)、数字(如'1'
、'2'
)、特殊字符(如'space'
表示空格、'enter'
表示回车键),还有功能键(如'ctrl'
、'alt'
、'shift'
)等。完整的按键名称列表可查阅pyautogui
官方文档。_pause
:属于可选参数,是布尔值,默认值为True
。若设置为True
,函数执行完成后会暂停一段时间,暂停时长由pyautogui.PAUSE
属性决定;若设置为False
,则不会暂停。
2.3 截取屏幕图像
# 截取屏幕图像
# 安装依赖第三方库 Pillowimport pyautogui as pa# 截取屏幕图像
# 第一个参数传 保存的位置pa.screenshot('1.png')
pyautogui.screenshot()函数
函数原型
pyautogui.screenshot(region=None, imageFilename=None)
参数解释
region
:可选参数,是一个包含四个整数的元组(left, top, width, height)
。left
和top
分别表示截图区域左上角的坐标,width
和height
分别表示截图区域的宽度和高度。若不指定该参数,默认截取整个屏幕。imageFilename
:可选参数,是一个字符串,代表保存截图的文件名。若指定了该参数,截图会保存到指定文件;若不指定,函数会返回一个PIL
(Python Imaging Library)的Image
对象。
2.4 消息框,输入框
# 消息框,输入框import pyautogui as pa
import time# 消息框
# 第一个位置传内容,第二个内容传标题,第三个内容传按钮
pa.alert('程序员', '镖旗')# 输入框
# 第一个位置传内容,第二个内容传标题,第三个内容传默认输入的内容
a1 = pa.prompt('显示内容', '标题')
print(a1)
pyautogui.alert()函数
函数原型
pyautogui.alert(text='', title='', button='OK')
参数解释
text
:这是可选参数,是一个字符串,代表消息框里要显示的文本内容,默认值为空字符串。title
:同样是可选参数,也是字符串,为消息框的标题,默认值为空字符串。button
:还是可选参数,是字符串,指定消息框上按钮的文本,默认值是'OK'
。
pyautogui.prompt()函数
函数原型
pyautogui.prompt(text='', title='', default='')
参数解释
text
:可选参数,是一个字符串,用于指定输入框中显示的提示文本,告知用户需要输入的内容,默认值为空字符串。title
:可选参数,也是字符串,为输入框的标题,默认值为空字符串。default
:可选参数,字符串类型,指定输入框中的默认文本内容,用户可以在此基础上进行修改或直接使用,默认值为空字符串。
三、基于opencv和pyautogui实现图像识别的自动操作
import timeimport cv2
import pyautoguidef get_xy(img_model_path):"""用来判断游戏画面的点击坐标:param img_model_path:用来检测的模版图片的路径:return:"""# 将屏幕截图保存pyautogui.screenshot().save("./pic/screenshot.png")# 载入截图img = cv2.imread("./pic/screenshot.png")# 读取模版的宽度和高度height, width = img_model_path.shape# 进行模版匹配result = cv2.matchTemplate(img, img_model_path, cv2.TM_SQDIFF_NORMED)# 解析出匹配区域的左上角的坐标upper_left = cv2.minMaxLoc(result)[2]# 计算匹配区域右下角的坐标lower_right = (upper_left[0] + width, upper_left[1] + height)# 计算中心区域的坐标avg = (int((upper_left[0] + lower_right[0]) / 2), int((upper_left[1] + lower_right[1]) / 2))return avgdef auto_click(var_avg):"""接受一个元祖参数,自动点击:param var_avg::return:"""pyautogui.click(var_avg[0], var_avg[1], button='left')time.sleep(1)def routine(img_model_path, name):avg = get_xy(img_model_path)print(f'正在点击{name}')auto_click(avg)
相关文章:
【python脚本】基于pyautogui的python脚本
一、什么是自动化 自动化是指使用技术手段模拟人工,执行重复性任务。准确率100%,高于人工。 自动化应用场景: 自动化测试自动化运维自动化办公自动化游戏 二、pyautogui的使用 先使用 pip install pyautogui 指令安装这个第三方库 2.1 …...
人工智能时代人才培养的变革路径:模式创新、能力重塑与认证赋能
在科技日新月异的今天,人工智能(AI)已成为推动社会进步与经济发展的核心力量。从自动驾驶到医疗诊断,从金融分析到教育创新,AI的触角已延伸至人类生活的每一个角落。这一变革不仅重塑了产业格局,更对人才培养提出了前所未有的挑战与机遇。在人工智能时代,如何培养适应未…...
xpath定位
一、路径符号核心区别(表格速查) 符号名称作用范围典型使用场景性能影响/单斜杠./ 相对路径直接子级, /绝对路劲-根路径精确层级定位高效//双斜杠//当前元素下开始查找,可以跨嵌套层模糊层级/跨嵌套定位较低效 一、XPath基础定位类型&#…...
Python列表(List)深度解析
列表(List)是Python中最基础且强大的数据结构之一,但它的底层实现和特性远比表面看起来复杂。本文将深入探讨列表的各个方面。 1. 列表基础特性 1.1 可变序列类型 lst [1, 2, 3] lst[1] 20 # 可变性1.2 异构容器 mixed [1, "hello", 3.14, [1, 2]…...
Mybatis---入门
1. 什么是MyBatis? MyBatis是⼀款优秀的 持久层 框架,⽤于简化JDBC的开发。 MyBatis本是 Apache的⼀个开源项⽬iBatis,2010年这个项⽬由apache迁移到了google code,并且改名为MyBatis 。2013年11⽉迁移到Github. 官⽹:MyBa…...
FPGA--HDLBits网站练习
目录 用状态机编写一个 LED流水灯代码 CPLD和FPGA芯片 CPLD(复杂可编程逻辑器件) FPGA(现场可编程门阵列) Verilog练习 基本 向量 用状态机编写一个 LED流水灯代码 往期作业已完成,博客地址: FPGA…...
《Linux内存管理:实验驱动的深度探索》【附录】【实验环境搭建 4】【Qemu 如何模拟numa架构】
我们在学习 linux 内核时,会涉及到很多 numa 的知识,那我们该如何在 qemu 中模拟这种情况,来配合我们的学习呢? 我们该如何模拟 如下的 numa 架构 Qemu 模拟 NUMA 架构 -M virt,gic-version3,virtualizationon,typevirt \ -cp…...
如何分析 jstat 统计来定位 GC?
全文目录: 开篇语前言摘要概述jstat 的核心命令与参数详解基本命令格式示例 jstat 输出解读主要字段含义 典型 GC 问题分析案例案例 1:年轻代 GC 过于频繁案例 2:老年代发生频繁 Full GC案例 3:元空间(Metaspace&#…...
Day51 | 3. 无重复字符的最长子串、12. 整数转罗马数字、49. 字母异位词分组、73. 矩阵置零
3. 无重复字符的最长子串 题目链接:3. 无重复字符的最长子串 - 力扣(LeetCode) 题目难度:中等 代码: class Solution {public int lengthOfLongestSubstring(String s) {Set<Character> setnew HashSet<&…...
【Linux系统编程】进程概念,进程状态
目录 一,操作系统(Operator System) 1-1概念 1-2设计操作系统的目的 1-3核心功能 1-4系统调用和库函数概念 二,进程(Process) 2-1进程概念与基本操作 2-2task_struct结构体内容 2-3查看进程 2-4通…...
第二十八章:Python可视化图表扩展-和弦图、旭日图、六边形箱图、桑基图和主题流图
一、引言 在数据可视化领域,除了常见的折线图、柱状图和散点图,还有一些高级图表类型可以帮助我们更直观地展示复杂数据关系。本文将介绍五种扩展图表:和弦图、旭日图、六边形箱图、桑基图和主题流图。这些图表在展示数据关系、层次结构和流量…...
深入理解C++引用:从基础到现代编程实践
一、引用的本质与基本特性 1.1 引用定义 引用是为现有变量创建的别名,通过&符号声明。其核心特点: 必须初始化且不能重新绑定 与被引用变量共享内存地址 无独立存储空间(编译器实现) 类型必须严格匹配 int value 42; in…...
OpenVLA-OFT——微调VLA的三大关键设计:支持动作分块的并行解码、连续动作表示以及L1回归目标
前言 25年3.26日,这是一个值得纪念的日子,这一天,我司「七月在线」的定位正式升级为了:具身智能的场景落地与定制开发商 ,后续则从定制开发 逐步过渡到 标准产品化 比如25年q2起,在定制开发之外࿰…...
linux3 mkdir rmdir rm cp touch ls -d /*/
Linux 系统的初始目录结构遵循 FHS(Filesystem Hierarchy Standard,文件系统层次标准),定义了每个目录的核心功能和存储内容。以下是 Linux 系统初始安装后的主要目录及其作用: 1. 核心系统目录 目录用途典型内容示例…...
TDengine 中的视图
简介 从 v3.2.1.0 开始,TDengine 企业版提供视图功能,便于用户简化操作,提升用户间的分享能力。 视图(View)本质上是一个存储在数据库中的查询语句。视图(非物化视图)本身不包含数据ÿ…...
算法设计学习9
实验目的及要求: 通过排序算法的实验,旨在深化学生对不同排序算法原理和性能的理解,培养其分析和比较算法效率的能力。通过实际编程,学生将掌握排序算法的实现方法,了解不同算法的优劣,并通过性能测试验证其…...
PGSQL 对象创建函数生成工具
文章目录 代码结果 代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>PGSQL 函数生成器</tit…...
企业安全——FIPs
0x00 前言 先来看一道题目。这道题目涉及到的就是道德规范和互联网相关内容,本文会对相关内容进行描述和整理。 正确答案是:D 注意FIPs的主要目的是为了限制,也就是针对数据的守则。 0x01 RFC 1087 1989年1月 互联网架构委员会 IAB 发布了…...
历年跨链合约恶意交易详解(二)——XBridge20240424攻击
漏洞合约函数 /*** dev token owner can list the pair of their token with their corresponding chain id* param baseToken struct that contains token address and its corresponding chain id* param correspondingToken struct that contains token address and its cor…...
《AI大模型开发笔记》MCP快速入门实战(一)
目录 1. MCP入门介绍 2. Function calling技术回顾 3. 大模型Agent开发技术体系回顾 二、 MCP客户端Client开发流程 1. uv工具入门使用指南 1.1 uv入门介绍 1.2 uv安装流程 1.3 uv的基本用法介绍 2.MCP极简客户端搭建流程 2.1 创建 MCP 客户端项目 2.2 创建MCP客户端…...
01背包问题:详细解释为什么重量维度必须从大到小遍历。
01背包 问题描述 题目链接:https://www.lanqiao.cn/problems/1174/learning/?page1&first_category_id1&problem_id1174 特点:每件物品只能拿或者不拿。 解法1 设置状态:dp[i][j]指的是前i件物品重量为j的最大价值。 第i件物品…...
Nginx配置伪静态,URL重写
Nginx配置伪静态,URL重写 [ Nginx ] 在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现: location / { // …..省略部分代码if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s/$1 l…...
【KMP】P10915 [蓝桥杯 2024 国 B] 最长回文前后缀|普及+
本文涉及知识点 较难理解的字符串查找算法KMP P10915 [蓝桥杯 2024 国 B] 最长回文前后缀 题目描述 小明特别喜欢回文串,然而回文串太少见了,因此他定义了一个字符串的相同长度的、不相交的前缀和后缀是“回文前后缀”,当且仅当这个前缀和…...
【linux学习】linux系统调用编程
目录 一、任务、进程和线程 1.1任务 1.2进程 1.3线程 1.4线程和进程的关系 1.5 在linux系统下进程操作 二、Linux虚拟内存管理与stm32的真实物理内存区别 2.1 Linux虚拟内存管理 2.2 STM32的真实物理内存映射 2.3区别 三、 Linux系统调用函数 fork()、wait()、exec(…...
构建第一个ArkTS应用:Hello World之旅
# 构建第一个ArkTS应用:Hello World之旅 在鸿蒙应用开发的领域中,ArkTS语言为我们提供了强大而便捷的开发方式。今天,就让我们一起踏上构建第一个ArkTS应用——Hello World的奇妙旅程。 ## 一、创建ArkTS工程 1. 首先,我们要使用…...
Mysql 集群架构 vs 主从复制架构
特性主从复制架构MySQL 集群架构适用场景读多写少的场景;备份;高可用高并发读写、实时交易、高可用性场景可扩展性仅读性能可扩展读写都可以水平扩展高可用性手动切换,有限的高可用支持自动故障转移,强高可用支持部署复杂度较简单…...
国产轻量级多途径无限制的高效下载工具介绍
软件介绍 们在日常中常常有下载各类文件的需求,学习资料也好,娱乐文件也罢。有一款国产的BT下载软件——BitComet(比特彗星),它凭借高效且无限制的特性,在下载爱好者中备受青睐。 BitComet属于轻量级的BT下…...
leetcode数组-长度最小的子数组
题目 题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/ 给定一个含有 n个正整数的数组和一个正整数 target** 。** 找出该数组中满足其总和大于等于target的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**…...
如何理解缓存一致性?
缓存一致性是指在多处理器系统或分布式系统中,确保各个处理器核心或节点的缓存数据与主内存以及其他缓存中的数据保持一致的机制和过程。以下从问题产生原因、一致性协议和实现方式等方面进行详细理解: 1. 问题产生的原因 1.1 缓存存在的必要性 在计…...
智能体(Agent)系统源码解析:AI 自动化办公的未来
—从代码到商业落地,如何用Agent重构企业工作流? 一、Agent系统的核心价值 1. 企业办公效率的瓶颈 重复性任务耗时:数据录入、报表生成、邮件处理等占员工 40% 工作时间跨系统协作低效:OA/CRM/ERP数据孤岛,人工搬运错…...
字符串移位包含问题
字符串移位包含问题 #include <iostream> #include <algorithm> using namespace std; int main(){string a,b;cin>>a>>b;//谁长遍历谁if(a.size()<b.size()) swap(a,b);//1-对整个字符串进行移位for(int i0; i<a.size(); i){//每次循环都将第一…...
【JavaScript】原型链 prototype 和 this 关键字的练习(老虎机)
这个老虎机练习主要考察JavaScript中的原型链(prototype)和this关键字的使用。 主要思路 创建三个轮盘(reels)实例:我们需要创建3个独立的轮盘对象,它们都委托(delegate)到基础的ree…...
Windows强制删除任何你想删除的文件和文件夹
Windows强制删除任何你想删除的文件和文件夹 本教程适用于 Windows 10/11 系统,工具和命令均经过验证。 为什么删除会失败? 权限不足:文件或文件夹可能需要管理员权限才能删除。文件被占用:某个程序正在使用目标文件,…...
【MySQL数据库】锁机制
概述 锁:是计算机协调多个进程或者线程并发访问某一资源的机制。在数据库中,除了传统的计算资源(CPU、RAM、IO)的争用以外。数据也是一种供多用户共享的资源。如何保证数据的并发访问的一致性、有效性是所有数据库必须解决的一个…...
JS dom修改元素的style样式属性
1通过样式属性修改 第三种 toggle有就删除 没就加上...
搜索树——AVL、红黑树、B树、B+树
目录 二叉搜索树 AVL树 2-3-4树 红黑树 旋转操作 概念讲解 旋转节点操作(左旋) 插入节点 删除节点 B树和B树 B树 2.5.2 B树 https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 难度高,如果想要了解红黑树的增加、…...
2007-2019年各省地方财政交通运输支出数据
2007-2019年各省地方财政交通运输支出数据 1、时间:2007-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、地方财政交通运输支出 4、范围:31省 5、指标说明:地方财政交通运输支出是指地方…...
LeetCode算法题(Go语言实现)_29
题目 给你一个链表的头节点 head 。删除 链表的 中间节点 ,并返回修改后的链表的头节点 head 。 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x 的最大整数。 对于 n 1、2…...
MINIQMT学习课程Day6
学习安装qmt 安装好后,点击启动国金qmt系统 之后将xtquant包手动安装到python中的site_package中,之后使用pycharm打开文件,创建本地命令文件。 具体的xtquant安装包以及qmt模拟环境,以及模拟账号密码,可以加我私信沟…...
WinForm真入门(7)——Button控件详解
WinForm Button 控件详解 Button(按钮)是 WinForm 中最基础的交互控件,用于触发操作(如:点击登录按钮进入系统)或提交数据(如:写好请假申请后,点击提交,把申…...
035-Windows抓屏-GDI
Windows抓屏-GDI 一、技术原理 GDI(Graphics Device Interface)抓屏基于Windows系统提供的图形设备接口,通过设备上下文(DC) 实现屏幕内容捕获。核心流程如下: 获取桌面窗口句柄:通过 //获取…...
复古优雅感涂鸦手绘喷漆街头艺术字体 Enter Sonic Graffiti
Enter Sonic Graffiti 是 Rvq Typefoundry 的新字体,具有优雅感的字符集。要创建漂亮的组合,只需混合大写和小写,然后与其他字符形混合即可。新的 Graffiti 字体样式和 .我将这款字体献给我正在与癌症作斗争的母亲。我希望我的母亲和所有受癌…...
4.4 代码随想录第三十五天打卡
121. 买卖股票的最佳时机 (1)题目描述: , (2)解题思路: class Solution { public:int maxProfit(vector<int>& prices) {int len prices.size();if (len 0) return 0;vector<vector<int>> dp(len, vector<int>(2));dp[0][0] - pr…...
PyTorch 深度学习实战(34):神经架构搜索(NAS)实战
在上一篇文章中,我们探讨了联邦学习与隐私保护技术。本文将深入介绍神经架构搜索(Neural Architecture Search, NAS)这一自动化机器学习方法,它能够自动设计高性能的神经网络架构。我们将使用PyTorch实现基于梯度优化的DARTS方法&…...
【python】速通笔记
Python学习路径 - 从零基础到入门 环境搭建 安装Python Windows: 从官网下载安装包 https://www.python.org/downloads/Mac/Linux: 通常已预装,可通过终端输入python3 --version检查 配置开发环境 推荐使用VS Code或PyCharm作为代码编辑器安装Python扩展插件创建第…...
简易Minecraft python
废话多说 以下是一个基于Python和ModernGL的简化版3D沙盒游戏框架。由于代码长度限制,这里提供一个核心实现(约500行),您可以通过添加更多功能和内容来扩展它: python import pygame import moderngl import numpy a…...
Linux信号处理解析:从入门到实战
Linux信号处理全解析:从入门到实战 一、初识Linux信号:系统级的"紧急电话" 信号是什么? 信号是Linux系统中进程间通信的"紧急通知",如同现实中的交通信号灯。当用户按下CtrlC(产生SIGINT信号&…...
2025-04-04 Unity 网络基础5——TCP分包与黏包
文章目录 1 分包与黏包2 解决方案2.1 数据接口2.2 定义消息2.3 NetManager2.4 分包、黏包处理 3 测试3.1 服务端3.2 客户端3.3 直接发送3.4 黏包发送3.5 分包发送3.6 分包、黏包发送3.7 其他 1 分包与黏包 分包、黏包指在网络通信中由于各种因素(网络环境、API …...
Ubuntu 安装 JMeter:为你的服务器配置做好准备
Apache JMeter 是一个开源的负载测试工具,可以用于测试静态和动态资源,确定服务器的性能和稳定性。在本文中,我们将讨论如何下载和安装 JMeter。 安装 Java(已安装 Java 的此步骤可跳过) 要下载 Java,请遵…...
swift-oc和swift block和代理
一、闭包或block 1.1、swift 闭包表达式作为参数的形式 一、闭包的定义 func exec(v1: Int, v2: Int, fn: (Int, Int) -> Int) { print(fn(v1, v2)) } 二、调用 exec(v1: 10, v2: 20, fn: { (v1: Int, v2: Int) -> Int in return v1 v2 }) 1.2、swift 闭包表达式作为…...