21.Excel自动化:如何使用 xlwings 进行编程
一 将Excel用作数据查看器
1.导包
import datetime as dt
import xlwings as xw
import pandas as pd
import numpy as np
2.view 函数
创建一个基于伪随机数的DataFrame,它有足够多的行,使得只有首尾几行会被显示。
df = pd.DataFrame(data=np.random.randn(100, 5),columns=[f"Trial {i}" for i in range(1, 6)])
print(df)
xw.view(df)
view 函数可以接受所有常见的 Python 对象,包括数字、字符串、列表、字典、元组、NumPy 数组和 pandas DataFrame。
在默认情况下,它会打开一个新的工作簿,然后将对象粘贴到第一张工作表的 A1 单元格。
不必每次都打开一个新的工作簿,你也可以通过为 view 函数提供一个 xlwings sheet 对象作为第二个参数来重复利用同一个工作簿文件:xw.view(df, mysheet)。
自动打开,未展示完全。
二 xlwings 的使用方法
1.xw.Book()
的不同用法
1.xw.Book()
:创建新工作簿
wb = xw.Book() 和 wb = app.books.add() 都是新建一个工作簿,有什么区别?
在
xlwings
中,xw.Book()
和app.books.add()
都可以用于创建新工作簿,但它们在底层实现和使用场景上有以下区别。
xw.Book()
:如果没有活动的Excel实例,它会启动一个新的,然后新建一个工作簿。如果有活动的实例,比如用户已经手动打开了Excel,那么它会在这个实例中新建工作簿。无需显式创建App
对象,适合快速操作。
app.books.add()
:需要先有一个app
对象,通过xw.App()
创建。在指定的app
实例中新建工作簿。适合需要同时操作多个 Excel 实例或工作簿的场景。
xw.Book()
更自动化,适合简单场景;app.books.add()
更明确,适合需要精细管理的情况。
补充:如果你在两个 Excel 实例中打开了同一个工作簿,或者想要指定某个 Excel 实例打开某个工作簿,就不能再使用 xw.book 了。此时需要使用 books 集合。
.books方法
xw.apps[key].books
表示 Excel 实例中所有打开的工作簿集合。访问工作簿:
通过索引:
app.books[0]
获取第一个工作簿。通过名称:
app.books['Book1.xlsx']
按名称获取。myapp 代表一个 xlwings app 对象。(myapp=xw.App())如果将 myapp.books 替换成 xw.books,则 xlwings 会使用活动的 app。![]()
2.xw.Book("Book1")
:引用未保存的未命名工作簿
xw.Book() 和 xw.Book("Book1") 的区别?
xw.Book()
:创建一个全新的 Excel 工作簿。如果当前没有打开的 Excel 实例,xlwings 会自动启动一个。新工作簿默认命名为
Book1
(如果未指定其他名称)。该工作簿不会自动保存,需手动调用.save()
方法。
xw.Book("Book1")
:尝试打开已存在的名为 "Book1" 的工作簿。如果名为 "Book1" 的工作簿已打开,直接返回该工作簿的引用。如果名为 "Book1" 的工作簿未打开但存在(即文件存在于磁盘),xlwings 会打开它。如果文件不存在,会抛出
FileNotFoundError
。
3.xw.Book("Book1.xlsx")
:引用已保存的文件
路径也可以是绝对路径。
4.xw.books.active
:获取活动工作簿
返回当前 Excel 实例中活动的工作簿对象,直接获取用户当前正在操作的 Excel 工作簿对象。
2.xw.sheets[ ]
:访问工作表集合
返回工作簿中所有工作表的集合(类似列表)。
1.通过名称或索引访问特定工作表
2.遍历所有工作表
3.添加工作表
4.删除工作表
5.检查工作表是否存在
3.xw.range()的不同用法
.range方法是用来操作Excel单元格区域的。
1.对单个单元格
1.通过单元格名字操作单元格
补充:.value方法。
.value
是 Range 对象的属性。读取:
cell_value = sheet.range("A1").value
print(cell_value)
写入:
sheet.range("A1").value = "New Value"
sheet1.range("A1").value = [[1, 2], [3, 4]] 这行代码是什么意思,A1这一个单元格里面的数据是[1, 2], [3, 4]吗?
自动扩展写入范围:虽然你指定了
A1
这个单个单元格,但当你给一个单元格赋值一个二维列表(如[[1,2], [3,4]]
)时,xlwings 会自动将数据扩展到相邻的单元格区域。数据会被写入到A1:B2
的区域。这个A1相当于是指定从A1单元格开始写入数据而不是写入A1单元格。赋予二维列表(如[[1,2], [3,4]]
),xlwings 会将其视为多行多列的数据,并自动扩展写入到连续的单元格区域。
2.通过行列索引操作
2.对多个单元格(范围)
1.命名范围操作
2.批量操作整行/整列
补充:索引和切片。
3.公式操作
4.多区域操作
3.range 对象的 options 方法
对应:5.Pandas :DataFrame 的使用——数据操作→9.将 DataFrame 写入 Excel
range.options()
方法,是用于动态控制 Excel 数据读写时的值处理方式的。只有在调用 value
属性时,options
的设置才会生效。
options()
本身不会立即处理数据,它只是定义了一组规则。当调用 .value
时,xlwings
会根据 options
的规则,对 range
区域的数据进行处理,返回结果。

options()
用于定义读取或写入数据时,值的转换规则。
常见的选项包括:
convert
:控制数据类型转换(如将 Excel 中的数字文本转为 Python 的整数)。
dates
:处理日期格式(如将 Excel 的日期序列转为 Python 的 datetime
对象)。
numbers
:控制数字的解析方式(如科学计数法、千分位分隔符)。
补充:convert 参数可以接受的值。
4.对 sheet 对象进行索引和切片来获得 range 对象
补充:对 sheet 对象进行索引 / 切片和使用range 对象之间的区别。
sheet 对象在 xlwings 中代表 Excel 的工作表。用户可能通过sheet[行, 列]或者sheet[:行, :列]这样的索引或切片方式来操作单元格。而range对象则是通过sheet.range("A1")或者sheet.range("A1:B2")。
5.从 0 开始的索引和从 1 开始的索引的说明
作为一个 Python 包,只要你通过 Python 的索引或切片语法(通过方括号)访问元素,xlwings 就始终使用从 0 开始的索引。但是 xlwings 的 range 对象使用的是从 1 开始的行列索引。那么可以使用 sheet[row_selection, column_selection] 语法。
6.xw.name()和 xw.fullname()
xw.name
:返回 Excel 应用程序的简短名称(通常是 "Microsoft Excel")。
示例输出:"Microsoft Excel"
xw.fullname
:返回 Excel 应用程序的完整名称(包含版本信息,如 "Microsoft Excel 365")。
示例输出:"Microsoft Excel 365"
7.xw.app()的不同用法
.app是指Excel应用程序实例的接口。通过xw.App()来启动Excel实例,或者使用现有的实例。
.app
用于控制 Excel 应用程序级别的操作(如可见性、屏幕更新、计算模式等)。
1.启动/关闭 Excel 实例
1.启动新实例
默认可见。
2.连接已打开的 Excel 实例
3.从打开的工作簿中获取app对象
2.控制 Excel 的行为
3.打开/操作/保存并关闭工作簿
1.打开工作簿
2.操作工作簿
1.列出各实例中打开的工作簿名称
通过列表推导式。
2.写入值
3.保存并关闭工作簿
4.获取 app 的键
App
对象代表一个 Excel 应用程序实例,可以获取其唯一标识符(即“键”)。
1.app.pid
返回 Excel 进程的唯一数字标识符(Process ID),由操作系统分配。
2.app.hwnd
返回窗口的唯一标识符(仅 Windows 有效)。
补充:xw.apps.keys()
app.pid 和 app.hwnd
是App对象的属性。xw.apps.keys()会返回所有正在运行的Excel实例的进程ID列表。
xw.apps是一个类似字典的对象,其中每个键对应一个Excel实例的标识符,而值则是App对象本身。所以xw.apps.keys()应该返回所有当前运行的Excel实例的键(它们的标识符)。
5.退出 Excel 实例
6..caller()
如果你通过 Excel 中的 VBA 宏、按钮或其他方式运行 Python 代码,.caller()
会返回调用代码时正在运行的 Excel 应用程序实例。
返回一个 xlwings
的 App
对象,使你可以在 Python 中直接操作触发代码的 Excel 应用程序。
8.xw.save()和 xw.close()
三 xlwings 的高级用法
1.批量操作工作表
2.创建 Excel 图表
charts 集合的 add 方法。
向 Excel 工作表插入一个新的图表。返回一个 Chart
对象,代表新添加的图表,可以通过该对象进一步配置图表(如设置类型、数据源等)。
top=sheet1["A19"].top
:图表的顶部位置与单元格 A19
的顶部对齐。
left=sheet1["A19"].left
:图表的左侧位置与单元格 A19
的左侧对齐。
图表会被放置在单元格 A19
的位置,覆盖该单元格。
chart.chart_type = "column_clustered":
将图表的类型设置为簇状柱形图(一种常见的柱状图类型)。
chart.set_source_data(sheet1["A15"].expand()):设置图表数据源
sheet1["A15"].expand()
:
从单元格 A15
开始,自动扩展选择连续的、非空的数据区域。
set_source_data
:
将上述扩展后的数据区域设置为图表的数据源,图表会根据这些数据生成对应的柱状图。
补充:其他例子
3.结合 Matplotlib
将 Matplotlib 图像放入 Excel 中。
在处理图片时,一定要确保安装了 Pillow,它是 Python 中常用的图片处理库。Pillow 能够保证图片在 Excel 中有正确的尺寸和比例。Anaconda 中包含了 Pillow。
当使用 pandas 的默认绘图后端时,创建的是一张 Matplotlib 的图像。
要将这样的图 像放进 Excel 中,首先要获取它的 figure 对象,然后将其作为参数传递给pictures.add, pictures.add 会将 Matplotlib 图像转换为图片然后发送至 Excel。pictures.add
方法是 xlwings
库中的一个功能,用于将图片添加到 Excel 工作表中。
pictures.add
:将图片(如生成的图表)插入到 Excel 工作表中。返回一个 Picture
对象,代表插入的图片,可以通过该对象进一步配置图片(如调整位置、大小等)。
除了接受 Matplotlib 图像, pictures.add 也可以接受磁盘上的图片路径。
image
:要插入的图片对象(如 matplotlib
的 Figure
对象)。
name
(可选):图片的名称(字符串)。
update
(可选):如果为 True
,更新现有同名图片;否则添加新图片(默认 False
)。
left
(可选):图片左侧距离工作表左侧的位置(单位:点)。
top
(可选):图片顶部距离工作表顶部的位置(单位:点)。
width
(可选):图片的宽度(单位:点)。
height
(可选):图片的高度(单位:点)。
代码举例:
%matplotlib inline
:这是一个魔术命令,用于在 Jupyter Notebook 中直接显示 matplotlib
生成的图表。图表会内嵌在 Notebook 的单元格下方,而不是弹出一个独立的窗口。
plt.style.use("seaborn")
:设置 matplotlib
的图表风格为 "seaborn"。seaborn
是一种现代、美观的统计图表风格,由同名库 seaborn
提供。使用此风格后,图表的网格、颜色、字体等视觉元素会自动调整为 seaborn
的默认样式。
ax = df.T.plot.bar()
:生成一个柱状图,并返回 Axes
对象。
df.T
:对 DataFrame df
进行转置(行和列交换)。转置后,原来的行索引(Last Year
和 This Year
)会变成列名,原来的列名(North
和 South
)会变成行索引。转置是为了调整图表的方向,使柱状图的分组更直观。
.plot.bar()
:调用 pandas
的绘图方法生成柱状图。
返回的 ax
是一个 Axes
对象,代表图表的坐标轴和绘图区域。
补充:
Figure
对象和Axes
对象在
matplotlib
中Figure
对象代表整个图表(包括所有子图、标题、图例等元素)。Axes
对象代表图表中的一个子图或坐标轴区域。一个
Figure
对象可以包含多个Axes
对象(例如,通过plt.subplots()
创建多个子图)。
fig = ax.get_figure()
:从 Axes
对象中获取关联的 Figure
对象。
.get_figure()
:从 Axes
对象中获取其所属的 Figure
对象。
保存图表:通过 Figure
对象可以保存整个图表为文件(如 fig.savefig("chart.png")
)。
调整图表布局:通过 Figure
对象可以调整图表的全局布局(如 fig.tight_layout()
)。
获取图表属性:通过 Figure
对象可以访问图表的尺寸、分辨率等属性。
补充:
.get_figure()
方法是matplotlib
中用于从Axes
对象获取其所属Figure
对象的关键方法。通过Figure
对象,用户可以执行保存图表、调整布局等高级操作。
补充:想使用新的图像来更新图片
只需调用 update 方法并传递另一个 figure 对象即可。虽然这样做会替换 Excel 中的图片,但会保留位置、尺寸、名称等属性。
(df + 1)
:对 DataFramedf
中的每个元素加 1。
转置后:
.plot.bar()
:调用pandas
的绘图方法生成柱状图。返回的ax
是一个Axes
对象,代表图表的坐标轴和绘图区域。
plot = plot.update(ax.get_figure()):
用新的Figure
对象更新已有的图表对象。
4.已定义名称集合
1.什么是已定义名称
在 Excel 中,我们通过为区域、公式和常量赋予名称来创建已定义名称。为一个区域命名是常见情况,这种区域被称作具名区域。利用具名区域,你可以在公式和代码中使用描述性名称而不是抽象地址(A1:B2)来引用一个 Excel 区域。
补充:
具名区域:给某个单元格或单元格区域赋予一个名称(如
SalesData
),方便在公式或图表中引用。全局作用域:名称在整个工作簿中唯一,任何工作表都能引用。
工作表作用域:名称仅在当前工作表中唯一,复制到其他工作表时会自动重命名。
利用具名区域读写值可以在不调整 Python 代码的情况下重新组织工作簿。比如,即使插入新行导致了单元格的移动,但对应的名称仍然引用的是原来的单元格。自定义名称可以在全局工作簿作用域或局部工作表作用域中设置。
工作表作用域的优势是在复制工作表时不用担心重复的具名区域发生冲突。
什么是工作表作用域的优势是在复制工作表时不用担心重复的具名区域发生冲突?
假设你有一个工作表
Sheet1
,其中定义了一个全局作用域的具名区域SalesData
。当你复制Sheet1
到Sheet2
时:Sheet2
中也会出现一个名为SalesData
的具名区域。如果此时你尝试在公式或图表中引用SalesData
,软件会不知道引用的是Sheet1
还是Sheet2
中的SalesData
,导致冲突。
在 Excel 中,你可以在“公式 > 定义名称”菜单项中添加自定义名称。也可以选择一个区域,然后将想要的名称写到名称框(公式栏左边的文本框)中,你可以在这里看到默认的单元格地址。
2.使用 xlwings 创建自定义名称的方法
默认作用域是工作簿作用域。
sheet1["A1:B2"].name = "matrix1"
工作表作用域需要在工作表名称前加上一个感叹号。
sheet1["B10:E11"].name = "Sheet1!matrix2"
3.通过名称访问区域
1.用 sheet 方法
sheet1["matrix1"]
返回当前工作表(sheet1
)中定义的工作表作用域的具名区域。
原因:工作表对象只能“看到”其内部定义的作用域为当前工作表的具名区域。
2.用 book 方法
book.names
返回整个工作簿(book
)中定义的所有作用域的具名区域。
原因:工作簿对象可以“看到”全局作用域和工作表作用域的具名区域。
4.名称有多种方法和属性
1.获取对应的range对象
book.names["matrix1"].refers_to_range
获取工作簿中名为 matrix1
的具名区域所引用的具体单元格范围。
book
是工作簿对象(如 Excel 文件)。book.names
是工作簿中所有具名区域的集合,包含工作簿作用域和工作表作用域的具名区域。通过名称 matrix1
从 book.names
集合中获取特定的具名区域对象。
.refers_to_range
:是具名区域对象的一个属性,返回该具名区域所引用的具体单元格范围(Range 对象)。例如,如果 matrix1
引用的是 Sheet1!A1:B2
,那么 .refers_to_range
会返回这个范围。
2.为常量或公式取名
使用add方法。
book.names.add("EURUSD", "=1.1151")
"EURUSD"
:是新具名区域的名称,遵循命名规则(如不能以数字开头,不能包含空格等)。
=1.1151"
:如果直接赋值(如 =1.1151
),表示该具名区域的值是 1.1151
。如果引用单元格(如 =Sheet1!A1
),表示该具名区域的值是 Sheet1!A1
单元格的值。
5.通过 Python 来运行 VBA 宏
如果你手上有一些包含大量 VBA 代码的旧式 Excel 项目,那么要将所有东西都迁移到 Python 并非易事。在这种情况下,可以通过 Python 来运行 VBA 宏。
macro()
方法将 VBA 代码桥接到 Python,使其像原生函数一样调用。
步骤1:连接 VBA 工作簿
通过 xw.Book()
加载包含 VBA 代码的 vba.xlsm
文件。返回一个 Book
对象 vba_book
,用于操作该工作簿。
步骤2:绑定 VBA 函数
vba_book.macro( )
将 VBA 函数 MySum
绑定到 Python 变量 mysum
。此时 mysum
像一个 Python 函数,可直接调用。
调用:
传递参数 5
和 4
给 VBA 函数 MySum ,
VBA 执行 x + y
计算,返回结果 9.0
。
步骤3:绑定 VBA 子程序
同理,将 VBA 子程序 ShowMsgBox
绑定到 show_msgbox
。子程序无返回值,但会执行操作(如弹窗)。
调用:
传递字符串参数 "Hello xlwings!"
。VBA 执行 MsgBox
弹出消息框,需手动关闭后才能继续。
步骤4:关闭工作簿
关闭book对象(一定要先关闭对话框)。若子程序弹出对话框未关闭,直接关闭工作簿会报错。
相关文章:
21.Excel自动化:如何使用 xlwings 进行编程
一 将Excel用作数据查看器 使用 xlwings 中的 view 函数。 1.导包 import datetime as dt import xlwings as xw import pandas as pd import numpy as np 2.view 函数 创建一个基于伪随机数的DataFrame,它有足够多的行,使得只有首尾几行会被显示。 df …...
【redis】数据类型之Stream
Redis Stream是Redis 5.0版本引入的一种新的数据类型,它提供了一种持久化的、可查询的、可扩展的消息队列服务。 它结合了Redis高性能的特性与持久化能力,支持: 多消费者组模式(Consumer Groups)消息回溯(…...
day17 周末两天偷懒没更新,今天炼丹加学习,完结STL常用容器部分
还剩下两个常用容器,一个是set(集合容器) , 一个是map容器 set/multiset 容器 set容器是关联式容器,该容器的特点是:所有元素都会在插入时被自动排序 set/multiset 都是关联式容器 ,其底层结构是使用二叉树实现的。…...
嵌入式开发场景中Shell脚本执行方式的对比
Shell脚本执行方式对比表 执行方式命令示例是否需要执行权限是否启动子Shell环境变量影响范围适用场景嵌入式开发中的典型应用直接执行脚本./script.sh是是子Shell内有效独立运行的脚本,需固定环境自动化构建脚本(…...
数据结构之多项式相加的链表实现
在计算机科学中,多项式的表示和运算经常会用到。使用链表来表示多项式是一种常见且有效的方法,它可以方便地处理多项式的各项,并且在进行多项式相加等运算时具有较好的灵活性。 多项式通常由一系列的项组成,每一项包含一个系数和…...
Java 实现将Word 转换成markdown
日常的开发中,需要将word 等各类文章信息转换成格式化语言,因此需要使用各类语言将word 转换成Markdown 1、引入 jar包 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version&g…...
IEEE PDF Xpress校验出现 :字体无法嵌入问题以及pdf版本问题
文章目录 问题描述一、字体嵌入问题首先查看一下,哪些字体没有被嵌入查看window的font文件夹里的字体下载字体的网站修复字体嵌入问题 二、pdf版本不对 问题描述 在处理IEEE的camera ready的时候,提交到IEEE express的文件没有办法通过validate…...
Sa-Token
简介 Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。 官方文档 常见功能 登录认证 本框架 用户提交 name password 参数,调用登…...
StarRocks 中 CURRENT_TIMESTAMP 和 CURRENT_TIME 分区过滤问题
背景 本文基于Starrocks 3.3.5 最近在进行Starrocks 跑数据的时候,发现了一个SQL 扫描了所有分区的数据,简化后的SQL如下: select date_created from tableA where date_createddate_format(current_time(), %Y-%m-%d %H:%i:%S) limit 20其…...
GithubPages+自定义域名+Cloudfare加速+浏览器收录(2025最新排坑)
前言 最近刷到一个小视频,讲述了选择域名选择的三宗罪,分别是 不要使用 .net,因为它价格贵,但是在顶级域名中的 SEO 效果却不是很好,也就是性价比很低不要使用 .cn,因为国外访问该网站可能会很慢…...
Canvas粒子系统终极指南:从基础运动到复杂交互的全流程实现
文章目录 一、粒子系统基础架构1.1 粒子数据结构设计1.2 粒子系统管理器 二、基础粒子效果实现2.1 重力场模拟2.2 弹性碰撞效果 三、高级交互实现3.1 鼠标吸引效果3.2 颜色渐变粒子 四、性能优化策略4.1 粒子池复用4.2 分层渲染 五、复杂效果实现5.1 烟花爆炸效果5.2 流体模拟 …...
【QT】新建QT工程(详细步骤)
新建QT工程 1.方法(1)点击new project按钮,弹出对话框,新建即可,步骤如下:(2) 点击文件菜单,选择新建文件或者工程,后续步骤如上 2.QT工程文件介绍(1).pro文件 --》QT工程配置文件(2)main.cpp --》QT工程主…...
详解Http:在QT中使用Http协议
目录 一、HTTP 概述 1、主要特点 2、HTTP 方法 3、HTTP 状态码 4、HTTP 头部 5、HTTP的工作原理 二、在Qt中使用HTTP 1、发送简单的HTTP请求 2、发送POST请求 3、处理异步请求 4、使用QSslConfiguration进行HTTPS 5、 处理JSON响应 6、处理错误 三、总结 一、HTTP…...
Next.js 中间件鉴权绕过漏洞 (CVE-2025-29927) 复现利用与原理分析
免责声明 本文所述漏洞复现方法仅供安全研究及授权测试使用; 任何个人/组织须在合法合规前提下实施,严禁用于非法目的; 作者不对任何滥用行为及后果负责,如发现新漏洞请及时联系厂商并遵循漏洞披露规则。 漏洞原理 Next.js 是一个…...
AI时代的数据底座:火山引擎多模态数据湖的设计与实践
资料来源:火山引擎-开发者社区 随着大模型的发展和应用,文本的边界被拓宽,图像、视频、语音各种模态涌现,并给数据管理、检索、计算带来巨大挑战。 火山引擎多模态数据湖 解决方案则可实现海量结构化、半结构化及非结构化数据的统…...
Numpy用法(二)
一.数组变维 1.1 reshape reshape() 可以改变数组维度,但是返回的是一个新的数组,原数组的形状不会被修改.reshape后产生的新数组是原数组的一个视图,即它与原数组共享相同的数据,但可以有不同的形状或维度,且对视图…...
STM32 IIC通信
目录 IIC简介硬件电路连接I2C时序基本单元IIC完整数据帧MPU6050封装硬件IIC内部电路 IIC简介 IIC(Inter-Integrated Circuit)是 IIC Bus 简称,中文叫集成电路总线。它是一种串行通信总线,使用多主从架构,由飞利浦公司…...
快速入门 JSON 数据格式
引言 JSON,全称 JavaScript Object Notion,类似于XML,YAML,Properties等,是一种数据交换格式,相比于XML,更简单,更轻量,更容易理解。 JSON vs XML 使用 JSON 目前被广…...
FFmpeg —— 中标麒麟系统下使用FFmpeg内核+Qt界面,制作完整功能音视频播放器(附:源码)
🔔 FFmpeg 相关音视频技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中…) 程序运行效果...
硬件测试工装设计不合理的补救措施
硬件测试工装设计不合理的补救措施主要包括重新评估设计需求、优化工装结构、强化工装校准与验证。其中,优化工装结构尤其重要,通过结构优化能够有效解决因设计不合理导致的测试准确性下降和可靠性不足的问题。根据工程实践数据,经过优化结构…...
任意文件读取漏洞
fofa语句:body"/vite/client" /fs/etc/passwd?import&raw?? https://35.175.173.157/fs/etc/passwd?import&raw?? http://geometer.dev.mvergely.com/fs/etc/passwd?import&raw??...
如何使用RK平台的spi驱动 spidev
RK平台spidev驱动读取RC522版本号示例 1. 硬件与驱动确认 确认SPI接口连接:RC522的SPI引脚与RK开发板的对应SPI控制器正确连接(CS、CLK、MOSI、MISO)检查内核配置: Bash # 内核需启用以下配置 CONFIG_SPIy CONFIG_SPI_MASTERy…...
网路传输层UDP/TCP
一、端口号 1.端口号 1.1 五元组 端口号(port)标识了一个主机上进行通信的不同的应用程序. 如图所示, 在一个机器上运行着许多进程, 每个进程使用的应用层协议都不一样, 比如FTP, SSH, SMTP, HTTP等. 当主机接收到一个报文中, 网络层一定封装了一个目的ip标识我这台主机, …...
1.2-WAF\CDN\OSS\反向代理\负载均衡
WAF:就是网站应用防火墙,有硬件类、软件类、云WAF; 还有网站内置的WAF,内置的WAF就是直接嵌在代码中的安全防护代码 硬件类:Imperva、天清WAG 软件:安全狗、D盾、云锁 云:阿里云盾、腾讯云WA…...
Dify 服务器部署指南
1. 系统要求 在开始部署之前,请确保你的服务器满足以下要求: 操作系统:Linux(推荐使用 Ubuntu 20.04 或更高版本)内存:至少 4GB RAM存储:至少 20GB 可用空间网络:稳定的互联网连接…...
从车间到数字生态:MES如何引领制造业智能化革命
在全球制造业加速迈向工业4.0的浪潮中,传统生产模式正经历颠覆性变革。制造执行系统(MES)作为连接物理车间与数字世界的核心纽带,正从“生产辅助工具”升级为“智能决策大脑”,推动制造业向数据驱动、柔性化与可持续化…...
Error:Flash Download failed
出现这个就是编译器要换...
Spring容器生命周期详解
Spring容器生命周期详解 Spring容器的生命周期从启动到关闭分为多个阶段,包括Bean的加载、实例化、初始化、使用和销毁。以下是详细流程和关键点: 1. 容器启动阶段 1.1 容器实例化 核心接口:BeanFactory(基础容器)或…...
革新测试管理 2.0丨Storm UTP统一测试管理平台智能化升级与全流程优化
承接上篇:从基础架构到深度协同 在首篇文章《革新测试管理 | 统一测试管理平台如何实现远程、协同、自动化?》中,我们探讨了Storm UTP如何通过云端协作、自动化测试框架和分布式执行能力打破传统测试壁垒。经过一年多的客户实践与技术迭代&a…...
将 char [] str = “hello,you,world” 改为 “world,you,hello“,要求空间复杂度为1
题目: 将 char [] str “hello,you,world” 改为 "world,you,hello",要求空间复杂度为1 (也就是使用的变量只能是单个字符或者常数,不能使用数组!!!!!) 解…...
运维规则之总结(Summary of Operation and Maintenance Rules)
运维规则之总结 在运维领域,经验和流程往往决定了系统的稳定性与可靠性。一个运维人,总结出了以下10条运维规则,涵盖了从基础管理到高级策略的全面内容,旨在帮助运维人员更好地应对各种挑战,确保系统的平稳运行。 1.…...
MongoDB 创建数据库
MongoDB 创建数据库 引言 MongoDB 是一款高性能、可扩展的 NoSQL 数据库,广泛应用于大数据领域。在 MongoDB 中,创建数据库是进行数据存储的第一步。本文将详细介绍 MongoDB 数据库的创建方法,包括手动创建和自动创建两种方式。 MongoDB 数…...
SpringSecurity OAuth2:授权服务器与资源服务器配置
文章目录 引言一、OAuth2基础概念与架构二、授权服务器配置三、令牌策略与存储方式四、资源服务器配置五、远程令牌验证与内省总结 引言 在现代分布式应用架构中,OAuth2已成为实现安全授权与认证的事实标准。Spring Security对OAuth2提供了全面支持,使开…...
Vue 2 探秘:visible 和 append-to-body 是谁的小秘密?
🚀 Vue 2 探秘:visible 和 append-to-body 是谁的小秘密?🤔 父组件:identify-list.vue子组件:fake-clue-list.vue 嘿,各位前端探险家!👋 今天我们要在 Vue 2 的代码丛林…...
C#高级:启动、中止一个指定路径的exe程序
一、启动一个exe class Program {static void Main(string[] args){string exePath "D:\测试\Test.exe";// 修改为你要运行的exe路径StartProcess(exePath);}private static bool StartProcess(string exePath){// 创建一个 ProcessStartInfo 对象来配置进程启动参…...
windows下安装sublime
sublime4 alpha 4098 版本 下载 可以根据待破解的版本选择下载 https://www.sublimetext.com/dev crack alpha4098 的licence 在----- BEGIN LICENSE ----- TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA12C0 A37081C5 D0316412 4584D…...
Qt 日志输出(重定向)
在软件开发中,日志输出是调试和问题排查的关键手段。Qt框架提供了灵活的日志系统,支持从简单的控制台输出到复杂的自定义日志处理。本文将详细介绍Qt中五种常用的日志输出方法,并附上完整代码示例。 一、使用Qt内置日志函数 Qt提供了五个全局…...
51c嵌入式~MOS~合集1
我自己的原文哦~ https://blog.51cto.com/whaosoft/12074888 一、MOS管:米勒效应、开关损耗以及参数匹配 MOS管即场效应管(MOSFET),属于压控型,是一种应用非常广泛的功率型开关元件,在开关电源、逆变器…...
一文详解k8s体系架构知识
0.云原生 1.k8s概念 1. k8s集群的两种管理角色 Master:集群控制节点,负责具体命令的执行过程。master节点通常会占用一股独立的服务器(高可用部署建议用3台服务器),是整个集群的首脑。 Master节点一组关键进程…...
Linux内核软中断分析
一、软中断类型 在Linux内核中,中断处理分为上半部(硬中断)和下半部。上半部负责快速响应硬件事件,而下半部用于处理耗时任务,避免阻塞系统。下半部有三种机制:软中断(Softirq)、小任…...
从医疗大模型到综合医疗智能体:算法、架构与路径全流程分析
一、引言 1.1 研究背景与意义 随着信息技术的飞速发展,医疗领域正经历着深刻的变革。医疗智能体作为人工智能技术在医疗行业的重要应用,正逐渐成为提升医疗服务质量、优化医疗流程、促进医疗资源合理分配的关键力量。从最初简单的医疗信息管理系统,到如今能够辅助诊断、制定…...
2025跳槽学习计划
(1)编程基础: 目录学习资料Chttps://www.bilibili.com/video/BV1z64y1U7hs?spm_id_from333.1387.favlist.content.clickLinuxPytorchhttps://www.bilibili.com/video/BV1if4y147hS?spm_id_from333.1387.favlist.content.clickopencv数据结…...
数据库后续
-- 添加作者字段 alter table t_hero add author varchar(100); -- 更新数据 update t_hero set author "曹雪芹" where id 1; update t_hero set author "曹雪芹" where id 2; update t_hero set author "曹雪芹" where id 3; upd…...
程序员软件工具推荐列表
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 程序员软件工具推荐列表1. Snipaste2. VSCod…...
如何在WordPress中限制用户登录到一台设备
在当今的互联网环境下,许多用户习惯共享账户信息,虽然看似无害,却可能对网站运营产生负面影响。尤其是对于那些经营会员网站和在线课程的平台,限制用户同时登录的设备数量显得尤为重要。本文将详细探讨如何在WordPress中限制用户登…...
基于大模型的自发性气胸全方位预测与诊疗方案研究
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、大模型预测自发性气胸的原理及技术基础 2.1 大模型介绍 2.2 模型构建与训练数据 2.3 模型训练与优化 三、术前风险预测与准备 3.1 术前风险预测指标 3.2 基于预测的术前准备 3.3 手术方案与麻醉方案制定…...
文章记单词 | 第14篇(六级)
一,单词释义 affection:n. 喜爱,钟爱;爱慕之情;感情stream:n. 小河,溪流;一连串,源源不断;水流,气流;vi. 流,流动&#x…...
系统如何查找文件?inode号又是什么?
下面分别详细解释您提到的三个问题: “文件系统怎么定位文件”、“inode 是什么”、“为什么删除后还可能被占用”。 一、文件系统怎么定位文件 1.1 目录与文件名并不直接存储文件数据 在常见的 Unix/Linux 文件系统(如 ext4、xfs)或类似的…...
Uni-app入门到精通:tabBar节点实现多页面的切换
tabBar节点用于实现多页面的切换。对于一个多tabBar应用,可以通过tabBar节点配置项指定一级导航栏,以及tabBar切换时显示的对应页面。在pages.json中提供tabBar节点配置,不仅是为了方便快速开发导航,更重要的是提示App平台和小程序…...
torchvision中数据集的使用
1、torchvision及其数据集的介绍 1.1 torchvision介绍 torchvision 是 PyTorch 的一个官方库,专门用于计算机视觉任务。它提供了以下核心功能: 预训练模型:如 ResNet、VGG、EfficientNet 等。数据集:内置常用视觉数据集…...