Pywinauto Recorder: 将Windows操作转化为Python脚本,高效简易地实现操作自动化
Pywinauto Recorder是一个强大的UI自动化工具,它能够记录用户在Windows应用程序上的操作,并将其转换为可执行的Python脚本。这意味着你可以轻松地将重复性的GUI操作自动化,提高效率并降低人为错误。
什么是Pywinauto Recorder?
Pywinauto Recorder的核心是Pywinauto库。不同于依赖图像识别或硬编码坐标的传统UI自动化工具,Pywinauto Recorder利用Windows的辅助功能(Accessibility technologies),能够可靠地识别和操作各种GUI元素,包括MFC、VB6、VCL、WinForms、WPF、Store apps、Qt以及大多数浏览器。它生成的Python脚本并非依赖于元素的屏幕坐标,而是通过元素的属性进行识别,因此更稳定,更易于维护。生成的脚本可以直接运行,也可以作为基础,进一步扩展和修改。
Pywinauto Recorder 的主要功能:
-
• 录制用户操作: 录制用户在Windows应用程序上的各种操作,例如点击按钮、输入文本、选择菜单项等。
-
• 生成Python脚本: 将录制的操作转换为清晰易懂的Python代码,并利用Pywinauto库进行操作。
-
• 元素识别: 通过辅助功能识别GUI元素,而非依赖于屏幕坐标,提高脚本的稳定性和可维护性。
-
• 脚本回放: 直接运行生成的Python脚本,重现录制的操作。
-
• 脚本增强: 生成的脚本返回Pywinauto包装器,方便用户进一步使用Pywinauto的丰富功能进行扩展和修改。
如何使用Pywinauto Recorder?
-
启动录制器: 双击
pywinauto_recorder.exe_
或运行python.exe pywinauto_recorder.py
启动录制器。启动后,会在系统托盘中显示一个图标。 -
切换到录制模式: 按下
Ctrl + Alt + r
切换到录制模式。此时,鼠标指针移动到可识别的GUI元素上方时,该元素会高亮显示为绿色或橙色。 -
录制操作: 在录制模式下,执行你想要自动化的操作,例如点击按钮、输入文本等。Pywinauto Recorder会将这些操作记录到脚本中。
-
停止录制: 完成录制后,再次按下
Ctrl + Alt + r
停止录制。生成的Python脚本将保存在Pywinauto recorder
文件夹(位于用户主目录下),同时也会复制到剪贴板。 -
元素信息复制: 按下
Ctrl + Shift + f
可以将当前高亮显示的GUI元素信息复制到剪贴板,方便调试和脚本编写。 -
脚本回放: 你可以直接运行生成的Python脚本,或者将脚本拖放到
pywinauto_recorder.exe_
来回放。 -
退出录制器: 在系统托盘菜单中点击“Quit”退出录制器。
示例:自动化记事本操作
假设我们想自动化一个简单的记事本操作:打开记事本,输入文本“Hello, world!”,然后保存文件。使用Pywinauto Recorder,我们可以录制这些操作,并生成相应的Python脚本。录制完成后,生成的Python脚本可能类似如下(实际代码可能略有不同,取决于记事本的窗口标题和元素属性):
# Generated by Pywinauto Recorder
from pywinauto.application import Applicationapp = Application(backend="uia").start("notepad.exe")
app.UntitledNotepad.Edit.type_keys("Hello, world!")
app.UntitledNotepad.menu_select("File->Save As")
# ... (后续代码可能包含保存对话框的交互) ...
这个脚本使用了Pywinauto库,通过访问记事本窗口的元素(例如 Edit
用于编辑文本区域),来执行操作。你可以根据需要修改和扩展这个脚本。
小结
Pywinauto Recorder 是一款优秀的UI自动化工具,它结合了 Pywinauto 库的强大功能和简单的录制回放机制,能够极大提高UI自动化测试和日常办公效率。其基于辅助功能的元素识别方式保证了脚本的稳定性和可维护性。对于需要进行大量重复性GUI操作的用户来说,Pywinauto Recorder 是一个值得尝试的工具。
项目地址:https://github.com/beuaaa/pywinauto_recorder
高效管理自己的Python开发环境
在日常的Python开发中,掌握如何管理和查看已经安装的库是非常重要的。这不仅能帮助你了解当前项目的依赖关系,还能避免出现版本冲突等问题。在这篇文章中,我们将详细介绍查看已安装Python库的方法,并提供一些实用的工具和技巧。
了解Python环境
在开始之前,我们需要明确Python环境的概念。Python环境指的是一个独立的运行环境,其中包含了Python解释器及其相关库。在开发中,通常我们会使用虚拟环境来管理不同项目的依赖。
使用虚拟环境的好处包括:
-
• 隔离性:每个项目都有独立的库,不会相互干扰。
-
• 可控性:可以自由地安装、更新和删除库。
使用pip查看已安装库
pip
是Python的标准包管理工具,用于安装和管理Python库。查看已安装库的最常用方法是使用pip list
命令。
pip list
执行这条命令后,终端将列出当前环境中所有已安装的库及其版本。输出格式如下:
Package Version
---------- -------
numpy 1.21.0
pandas 1.3.0
requests 2.25.1
通过查看这些信息,你可以很方便地了解当前环境中有哪些库,以及每个库的版本号。
使用pip freeze获取版本信息
如果你需要获取已安装库的详细信息以便于在其他环境中重建相同的环境,可以使用pip freeze
命令。
pip freeze
该命令将输出已安装库的名称及版本,格式为名称==版本
,便于直接生成requirements.txt
文件。例如:
numpy==1.21.0
pandas==1.3.0
requests==2.25.1
你可以将这些内容保存到requirements.txt
文件中,以便于将来在其他环境中使用pip install -r requirements.txt
来安装。
使用Anaconda查看已安装库
如果你使用Anaconda来管理Python环境,可以使用conda
命令来查看安装的库。
conda list
与pip list
类似,conda list
会列出当前环境中所有已安装的库及其版本,但它还会提供包的构建信息和通道来源,帮助你更好地了解库的安装情况。
管理库的版本
在项目开发过程中,库的版本管理十分重要。为了避免因库版本不兼容导致的问题,了解如何查看和更改库的版本非常有必要。
如果你想查看某个特定库的版本,可以使用以下命令:
pip show <包名>
例如,要查看numpy
的版本,可以执行:
pip show numpy
该命令将输出详细信息,包括库的版本、位置、作者等。
使用IDE查看已安装库
许多集成开发环境(IDE)如PyCharm、VS Code等,提供了可视化的方式来管理项目中的库。在PyCharm中,你可以通过以下步骤查看已安装库:
-
打开PyCharm,进入项目。
-
在左侧的项目视图中,右键点击项目名称,选择“Open Terminal”。
-
运行
pip list
或pip freeze
命令。
在VS Code中,你可以通过内建的终端运行相同的命令,或者使用其“Python”扩展来可视化库的管理。
小结
掌握如何查看和管理已安装的Python库对于开发者来说至关重要。无论你使用的是pip
还是conda
,了解这些工具的使用方法,可以有效帮助你管理项目的依赖关系,避免版本冲突,提高开发效率。
通常情况下,使用pip list
和pip freeze
最为方便,而对于Anaconda用户,则可以利用conda list
。对于更复杂的项目,尝试使用IDE提供的功能,简化库的查看和管理流程。
一个将 Python 代码编译为可执行文件的神器,支持多平台,简化程序部署
Nuitka 是一个用 Python 编写的 Python 编译器,它能够将 Python 代码编译为可执行文件或扩展模块,让你的 Python 程序运行得更快,更安全,更易于部署。
Nuitka 的用途
Nuitka 可以用来:
-
• 提高 Python 代码的执行速度: Nuitka 通过将 Python 代码编译为 C 代码,并使用 libpython 库和自身的静态 C 文件来执行,避免了 Python 解释器的开销,从而提高了代码的执行速度。
-
• 创建独立的可执行文件: Nuitka 可以使用
--standalone
和--onefile
选项创建独立的可执行文件,使你的 Python 程序可以在没有 Python 环境的机器上运行。 -
• 提高 Python 代码的安全性: Nuitka 编译后的代码更难以被反编译,从而提高了代码的安全性。
-
• 简化 Python 程序的部署: Nuitka 编译后的可执行文件可以方便地部署到不同的平台,而无需安装 Python 环境。
如何使用 Nuitka
Nuitka 的使用非常简单,你只需要在命令行中输入以下命令即可:
python -m nuitka your_script.py
其中 your_script.py
是你要编译的 Python 脚本文件名。
示例
假设你有一个名为 hello.py
的 Python 脚本,代码如下:
def talk(message):
return "Talk "+ messagedef main():
print(talk("Hello World"))if __name__ =="__main__":main()
你可以使用以下命令编译它:
python -m nuitka hello.py
编译完成后,会在 hello.py
的同级目录下生成一个名为 hello.exe
的可执行文件(Windows 系统)或 hello.bin
的可执行文件(其他系统)。你可以直接运行这个可执行文件,它会输出 Talk Hello World
。
Nuitka 的优势
-
• 完全兼容 Python:Nuitka 支持 Python 2.6、2.7、3.4-3.13,并且与 Python 的语法和语义完全兼容。
-
• 高度优化:Nuitka 对代码进行了高度优化,以避免不必要的开销,并尽可能地提高代码的执行速度。
-
• 灵活的编译选项:Nuitka 提供了丰富的编译选项,可以满足你不同的需求,例如创建独立可执行文件、嵌入依赖库等。
-
• 易于使用:Nuitka 的使用非常简单,只需要简单的命令即可完成编译。
总结
Nuitka 是一个功能强大、易于使用的 Python 编译器,它可以帮助你提高 Python 代码的执行速度、安全性、易于部署,是每个 Python 开发者必备的工具之一。
项目地址:https://github.com/Nuitka/Nuitka
Python打包exe体积爆炸?这5招让你的程序秒瘦身!
为什么Python打包的exe文件像充气胖子?
当你用PyInstaller将Python代码打包成exe时,可能会震惊地发现一个简单的脚本竟生成上百MB的文件,更有甚者可能到大到几个G。这是因为Python解释器、依赖库和第三方包都被完整打包。更糟糕的是,某些机器学习库(如TensorFlow)会让体积轻松突破500MB!理解这个机制是瘦身的第一步。
打造极简打包环境
80%的臃肿来自非必要依赖。通过虚拟环境隔离打包是最有效的解决方案:
python -m venv clean_env
clean_env\Scripts\activate
pip install 仅需要的库
pyinstaller --onefile your_script.py
这能避免全局环境中的冗余库混入。曾有开发者用此法将450MB的文件缩减到60MB!
UPX压缩:给exe穿上紧身衣
PyInstaller内置的UPX压缩工具能减少30%-50%体积:
pyinstaller --onefile --upx-dir /path/to/upx your_script.py
但需注意:某些杀毒软件可能误报UPX压缩文件,且压缩会增加启动时间(约0.5-2秒)。
精准狙击:手动排除冗余模块
在spec文件中添加排除列表,像手术刀般精准移除无用组件:
a = Analysis(['your_script.py'],excludes=['tkinter', 'pandas', 'numpy'], # 按需排除...
)
通过pyi-archive_viewer
工具分析打包内容,曾有案例通过排除matplotlib的后端组件节省40MB空间。
代码层面的瘦身美学
从源码入手实现深度优化:
-
删除所有未使用的import语句
-
将
import pandas as pd
改为from pandas import DataFrame
-
用
sys.exit()
替代冗余的while True
循环 -
将大尺寸资源文件改为运行时下载
进阶武器:编译型打包工具
当常规方法遇到瓶颈时,Nuitka可将Python编译为C代码:
nuitka --standalone --onefile your_script.py
虽然学习曲线陡峭,但能将某些项目的体积压缩到原生Python的1/3,同时提升执行速度。
总结通过虚拟环境隔离(减脂50%)、UPX压缩(塑形30%)、模块排除(精准抽脂)、代码优化(肌肉强化)、编译工具(基因改造)的五重组合拳,完全可以将典型Python exe文件从500MB压缩到百MB以内。但需注意:过度优化可能导致兼容性问题,建议采用渐进式优化策略,每次修改后验证功能完整性。最终选择哪种方案,取决于你对体积、兼容性和开发成本的权衡。现在,是时候让你的Python程序告别臃肿,轻装上阵了!
相关文章:
Pywinauto Recorder: 将Windows操作转化为Python脚本,高效简易地实现操作自动化
Pywinauto Recorder是一个强大的UI自动化工具,它能够记录用户在Windows应用程序上的操作,并将其转换为可执行的Python脚本。这意味着你可以轻松地将重复性的GUI操作自动化,提高效率并降低人为错误。 什么是Pywinauto Recorder? …...
【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解
目录 一、前言 二、传统 PPT 制作问题 2.1 传统方式制作 PPT 2.2 AI 大模型辅助制作 PPT 2.3 适用场景对比分析 2.4 最佳实践与推荐 三、DeepSeek Kimi 高效制作PPT操作实践 3.1 Kimi 简介 3.2 DeepSeek Kimi 制作PPT优势 3.2.1 DeepSeek 优势 3.2.2 Kimi 制作PPT优…...
Spring统一格式返回
目录 一:统一结果返回 1:统一结果返回写法 2:String类型报错问题 解决方法 二:统一异常返回 统一异常返回写法 三:总结 同志们,今天咱来讲一讲统一格式返回啊,也是好久没有讲过统一格式返…...
【商城实战(2)】商城架构设计:从底层逻辑到技术实现
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...
Netty笔记6:Netty组件
Netty笔记1:线程模型 Netty笔记2:零拷贝 Netty笔记3:NIO编程 Netty笔记4:Epoll Netty笔记5:Netty开发实例 Netty笔记6:Netty组件 Netty笔记7:ChannelPromise通知处理 Netty笔记8…...
大模型学习笔记------Llama 3模型架构简介
大模型学习笔记------Llama 3模型架构 1、整体网络结构2、主要创新点3、其他关键改进点 LLaMA(Large Language Model Meta AI)系列模型是Meta发布并开源,分别在2023年2月、2023年7月和2024年4月发布了经历了LLaMA 1、LLaMA 2和LLaMA 3模型。本文只讲相对比较成熟、性…...
DeepSeek本地接口调用(Ollama)
前言 上篇博文,我们通过Ollama搭建了本地的DeepSeek模型,本文主要是方便开发人员,如何通过代码或工具,通过API接口调用本地deepSeek模型 前文:DeepSeek-R1本地搭建_deepseek 本地部署-CSDN博客 注:本文不仅…...
C语言:51单片机 基础知识
一、单片机概述 单片机的组成及其特点 单片机是指在一块芯片上集成了CPU、ROM、RAM、定时器/计数器和多种I/O接口电路等,具有一定规模的微型计算机。 特点: 1、单片机的存储器以ROM、RAM严格分工。 2、采用面向控制的指令系统。 3、单片机的I/O口引脚通…...
DAIR-V2X-R数据集服务器下载
【官方github链接】https://github.com/ylwhxht/V2X-R 点击并登录 选择并点击下载 浏览器弹窗,右键选择复制下载链接 ------------------------------------服务器下载----------------------------------------- 登录服务器,选在要下载的文件夹复制路…...
Kali CentOs 7代理
工具v2↓ kali_IP段v2端口例子<1> kali_IP段v2端口例子<2> CentOs 7 //编辑配置文件 vi /etc/profile//在该配置文件的最后添加代理配置 export http_proxyhttp://ip:port //代理服务器ip地址和端口号 export https_proxyhttp://ip:port //代理服务器ip地址和…...
LabVIEW虚拟频谱分析仪
在电子技术快速发展的今天,频谱分析已成为信号优化与故障诊断的核心手段。传统频谱分析仪虽功能强大,但价格高昂且体积笨重,难以满足现场调试或移动场景的需求。 基于LabVIEW开发的虚拟频谱分析仪通过软件替代硬件功能,显著降低成…...
商城源码的框架
商城源码的框架通常是基于某种Web开发框架或者电子商务平台来构建的。以下是一些常见的商城源码框架: WooCommerce:基于WordPress的电子商务插件,适用于小型到中型的在线商店。 Magento:一个功能强大和灵活的开源电子商务平台&am…...
关联封号率降70%!2025最新IP隔离方案实操手册
高效运营安全防护,跨境卖家必看的风险规避指南 跨境账号管理的核心挑战:关联封号风险激增 2024年,随着全球电商平台对账号合规的审查日益严苛,“关联封号”已成为跨境卖家最头疼的问题之一。无论是同一IP登录多账号、员工操作失误…...
Qwen2-Audio系列学习笔记
模型介绍 GitHub - QwenLM/Qwen2-Audio: The official repo of Qwen2-Audio chat & pretrained large audio language model proposed by Alibaba Cloud. https://arxiv.org/pdf/2407.10759 https://zhuanlan.zhihu.com/p/712987238 We introduce the latest progress o…...
高频 SQL 50 题(基础版)_1341. 电影评分
高频 SQL 50 题(基础版)_1341. 电影评分 思路 思路 (select Users.name results from Users left join MovieRating on Users.user_id MovieRating.user_id group by(Users.name) order by count(MovieRating.movie_id) desc,Users.name asc limit 1) u…...
C#批量压缩并上载CSV数据文件到Box企业云盘
C# .NET 8实现Windows下批量压缩csv文件为zip文件,然后异步上传到box企业云服务网盘路径,实现异常处理和写入运行状态日志,参数来自ini配置文件。 C# .NET 8代码示例,包含INI配置读取、CSV文件压缩、Box上传、异步处理和日志记录…...
pyside6学习专栏(九):在PySide6中使用PySide6.QtCharts绘制6种不同的图表的示例代码
PySide6的QtCharts类支持绘制各种型状的图表,如面积区域图、饼状图、折线图、直方图、线条曲线图、离散点图等,下面的代码是采用示例数据绘制这6种图表的示例代码,并可实现动画显示效果,实际使用时参照代码中示例数据的格式将实际数据替换即可…...
阿里万相,正式开源
大家好,我是小悟。 阿里万相正式开源啦。这就像是AI界突然开启了一扇通往宝藏的大门,而且还是免费向所有人敞开的那种。 你想想看,在这个科技飞速发展的时代,AI就像是拥有神奇魔法的魔法师,不断地给我们带来各种意想…...
Golang语法特性总结
1.认识Golang代码特性 package main //1.包含main函数的文件就是一个main包--当前程序的包名// import "fmt" // import "time" import("fmt""time" )//3.同时包含多个包 4.强制代码风格:函数的 { 一定和函数名在同一行,否…...
AI绘画软件Stable Diffusion详解教程(6):文生图、提示词细说与绘图案例
文生图即以文字描述来生成图像,这是目前所有AI绘画软件的基本功能之一。要想画一副好的图片,除了选择好的模型,在文生图中,提示词特别关键。 一、什么是提示词(Prompt) 提示词又称创意、关键词、咒语、ca…...
getline的使用(L1-059敲笨钟)
在 C 中,getline 函数主要有两种常用的形式,分别是 <iostream> 头文件中的 std::getline 用于从输入流读取一行字符串,以及 <cstdio> 头文件中的 std::getline(C11 引入)用于从文件流读取一行。下面分别介…...
Python数据可视化
1.Python 数据可视化全指南 🚀 数据可视化是数据分析和机器学习的关键环节,Python 提供了丰富的可视化库,如 Matplotlib、Seaborn、Plotly、Pandas 内置可视化等。以下是 Python 可视化的核心内容及最佳实践。 2. 基础可视化库 2.1 Matplot…...
探秘基带算法:从原理到5G时代的通信变革【五】CORDIC算法
文章目录 2.4 CORDIC算法2.4.1 CORDIC算法的基本原理2.4.2 方法论与分类体系旋转模式矢量模式线性模式 2.4.3 **CORDIC 算法中的误差来源****角度逼近误差的分析****缩放效应误差的分析****精度需求与迭代次数的关系****常见应用场景下的迭代次数建议****总结** 2.4.4优缺点分析…...
golang介绍,特点,项目结构,基本变量类型与声明介绍(数组,切片,映射),控制流语句介绍(条件,循环,switch case)
目录 golang 介绍 面向并发 面向组合 特点 项目结构 图示 入口文件 main.go 基本变量类型与声明 介绍 声明变量 常量 字符串(string) 字符串格式化 空接口类型 数组 切片 创建对象 追加元素 复制切片 map(映射) 创建对象 使用 多重赋值 控制流语句…...
大语言模型学习--本地部署DeepSeek
本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型(LLM)本地化部署与管理工具,旨在简化在本地计算机上运行和管理大语言模型…...
力扣-动态规划-53 最大子数组和
思路 dp数组定义:以i为结尾的字符串的最大子数组和为dp[i]递推公式: dp[i] max(nums[i], dp[i-1] nums[i]);dp数组初始化:dp[0] nums[0];遍历顺序:顺序时间复杂度: 代码 class Solution { public:int maxS…...
论文阅读和代码实现EfficientDet(BiFPN)
BiFPN 采用双向特征融合,让 P3 和 P4 不仅能获取来自 Backbone 的信息,还可以有效吸收 P5 的高级语义特征,增强小目标的判别能力 通过 加权特征融合(Weighted Feature Fusion),BiFPN 让 P3 层能够 自动调整…...
[杂学笔记] 封装、继承、多态,堆和栈的区别,堆和栈的区别 ,托管与非托管 ,c++的垃圾回收机制 , 实现一个单例模式 注意事项
文章目录 1.封装、继承、多态2. 堆和栈的区别3.指针和引用的区别4. 托管与非托管5. c的垃圾回收机制6. 实现一个单例模式 注意事项 1.封装、继承、多态 封装就是将数据和内部的方法封装到一个类中,对外隐藏内部实现细节,但是留下了公共接口提供给外部使…...
c++ std::bind、std::bind_front使用笔记
c std::bind、std::bind_front使用笔记 std::bind 和 std::bind_front 的使用说明std::bind (C11 引入)std::bind_front (C20 引入) 应用场景应用注意事项应用注意事项的例子 std::bind 和 std::bind_front 的使用说明 std::bind (C11 引入) std::bind 用于创建一个新的可调用…...
神策数据严正声明
近日,我们发现有不法分子冒充神策网络科技(北京)有限公司(以下简称”神策数据”)的名义,发布虚假的招聘广告、面试邀请,企图误导求职者并进行不法行为。对此,我司发布严正声明&#…...
vue+elementui 实现上传文件/导入文件的功能
vueelementui 实现上传文件/导入文件的功能 1. 上传组件 <el-form-item label"上传文件:"><el-uploadaction"":file-list"fileList":show-file-list"false":http-request"handUpLoad"drag:limit"…...
FastGPT 引申:知识库辅助开发(代码符号自动提取与文件匹配工具详解)
文章目录 FastGPT 引申:知识库辅助开发(代码符号自动提取与文件匹配工具详解)1. 符号提取 prompt2. 文件查询 prompt3. 总结 FastGPT 引申:知识库辅助开发(代码符号自动提取与文件匹配工具详解) 在开发过程…...
李国杰院士 “七问” DeepSeek:深度剖析 AI 发展新态势
李国杰院士 “七问” DeepSeek:深度剖析 AI 发展新态势 在人工智能领域的探索之路上,李国杰院士凭借深厚的学术造诣和前瞻性的眼光,成为指引方向的重要灯塔。 李国杰院士任职于中国科学院计算技术研究所,担任研究员一职。他不仅是…...
C#中泛型的协变和逆变
协变: 在泛型接口中,使用out关键字可以声明协变。这意味着接口的泛型参数只能作为返回类型出现,而不能作为方法的参数类型。 示例:泛型接口中的协变 假设我们有一个基类Animal和一个派生类Dog: csharp复制 public…...
transformer架构解析{掩码,(自)注意力机制,多头(自)注意力机制}(含代码)-3
目录 前言 掩码张量 什么是掩码张量 掩码张量的作用 生成掩码张量实现 注意力机制 学习目标 注意力计算规则 注意力和自注意力 注意力机制 注意力机制计算规则的代码实现 多头注意力机制 学习目标 什么是多头注意力机制 多头注意力计算机制的作用 多头注意力机…...
SpringBoot生成唯一ID的方式
1.为什么要生成唯一ID? 数据唯一性:每个记录都需要有一个独一无二的标识符来确保数据的唯一性。这可以避免重复的数据行,并有助于准确地查询、更新或删除特定的记录。 数据完整性:通过使用唯一ID,可以保证数据库中的数…...
认识时钟树
时钟源 高速外部震荡器HSE 低速外部震荡器LSE 高速内部震荡器HSI 低速内部震荡器LSI 易混淆点: RC(Resistor-Capacitor,电阻-电容振荡器)一般是内部时钟源 RTC(Real-Time Clock,实时时钟)…...
NLP如何训练AI模型以理解知识
一、自然语言处理(NLP)的定义与核心目标 1. 什么是自然语言处理? NLP是计算机科学与人工智能的交叉领域,旨在让机器具备以下能力: • 理解:解析人类语言(文本或语音)的语法、语义和…...
linux如何在某个文件夹下查看所有文件(层级只到当前文件夹的两层)并找到‘XXXX’ 这个单词
问了AI写的不错,记录一下,排查一些报错的时候比较好用 在 Linux 中,您可以通过命令行工具查看某个文件夹下的所有文件(限制到当前文件夹及其子文件夹两层深度),并搜索包含特定单词(如 XXXXX&am…...
Android 常见View的防抖
在开发Android应用时,我们经常会遇到用户快速点击按钮或者频繁触发某个事件的情况。这种行为可能会导致不必要的重复操作,例如多次提交表单、重复加载数据等。为了避免这些问题,我们需要对这些事件进行防抖处理。本文将详细介绍如何在Kotlin中…...
Unity打包到webgl鼠标图标大小不正确
我使用了自定义鼠标纹理,打包出来发现鼠标特别的大,位置也不对劲 研究了一下,不考虑浏览器界面缩放的话,可以直接改import settings的最大尺寸,改成合适的尺寸。 暂时先这样解决吧 最后贴一个设置鼠标图标的代码 pub…...
CentOS 7中安装Dify
Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等,让您可以快速从原型到生产。尤其是我们本地部署DeepSeek等大模型时,会需要用到Dify来帮我们快捷的开发和应用。 大家可以参考学习它的中…...
爬蟲動態IP代理與數據採集穩定性
對於從事爬蟲開發的人來說,IP代理的使用直接影響了爬蟲的效率和穩定性。爬蟲的本質是模擬用戶訪問網站,通過抓取網頁內容來獲取所需數據。但大多數網站為了保護自己的數據或防止濫用,會設置諸如IP訪問頻率限制、登錄驗證甚至封禁等反爬蟲措施…...
excel 斜向拆分单元格
右键-合并单元格 右键-设置单元格格式-边框 在设置好分割线后,你可以开始输入文字。 需要注意的是,文字并不会自动分成上下两行。 为了达到你期望的效果,你可以通过 同过左对齐、上对齐 空格键或使用【AltEnter】组合键来调整单元格中内容的…...
React Native 实现滑一点点内容区块指示器也滑一点点
效果图如上,内容滑一点点,指示器也按比例话一点点,列表宽度跟数据有关。 实现思路如下: 1.监听列表滑动事件,获取列表横向滑动距离,假设为A; 2.获取列表的宽度,及列表可滑动的宽度…...
解决Vscode项目同时运行两个项目终端无法自动叠加的问题
终端(如命令行工具或服务进程)无法自动“叠加”使用同一资源(如端口号、进程ID等)的核心原因在于操作系统的资源管理机制和网络协议规范的限制。以下是具体分析: 以下是解决 VSCode 同时运行两个项目时终端被前一个占…...
vuex中的state是响应式的吗?
在 Vue.js 中,Vuex 的 state 是响应式的。这意味着当你更改 state 中的数据时,依赖于这些数据的 Vue 组件会自动更新。这是通过 Vue 的响应式系统实现的,该系统使用了 ES6 的 Proxy 对象来监听数据的变化。 当你在 Vuex 中定义了一个 state …...
k8s面试题总结(九)
1.K8s中pod删除失败,有哪些情况?如何解决? Pod删除失败的情况: (1) Pod被其他资源(如Deployment,ReplicaSet)引用,无法删除pod 解决:先删除引用该pod的资源,再删除pod…...
【JQuery—前端快速入门】JQuery 操作元素
JQuery 操作元素 1. 获取/修改元素内容 三个简单的获取元素的方法: 这三个方法即可以获取元素的内容,又可以设置元素的内容. 有参数时,就进行元素的值设置,没有参数时,就进行元素内容的获取. 接下来,我们需…...
三维数据可视化与表面重建:Marching Cubes算法的原理与应用
1. 引言 随着现代医学影像技术的飞速发展,三维数据的可视化与重建已成为医学研究、临床诊断和手术规划的重要工具。在众多三维重建算法中,Marching Cubes算法因其高效、稳定的特性成为从离散数据场中提取等值面的经典方法。本报告将深入探讨Marching Cu…...