当前位置: 首页 > news >正文

python文件操作相关(excel)

python文件操作相关(excel)

  • 1. openpyxl 库
    • openpyxl其他用法
      • 创建与删除
      • 操作单元格
      • 追加数据
      • 格式化单元格
      • 合并单元格
      • 插入图片
      • 公式
      • 打印设置
      • 保护工作表
      • 其他功能
  • 2. pandas 库
  • 3. xlrd 和 xlwt 库
  • 4. xlsxwriter 库
  • 5. pyxlsb 库
  • 应用场景
  • 参考资料

在 Python 中,操作 Excel 文件通常使用 openpyxl、pandas 和 xlrd/xlwt 等库

  • openpyxl:适合读写 .xlsx 文件,支持高级功能
  • pandas:适合数据分析和处理,支持读写 .xlsx 和 .xls 文件
  • xlrd/xlwt:适合读写旧版 .xls 文件
  • xlsxwriter:适合创建复杂的 .xlsx 文件
  • pyxlsb:适合读取 .xlsb 文件

1. openpyxl 库

openpyxl 是一个专门用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库,它支持 Excel的高级功能,如公式、图表、样式等

主要功能

  • 读取 Excel 文件:加载 Excel 文件并读取数据
  • 写入 Excel 文件:创建或修改 Excel 文件并保存
  • 操作工作表:添加、删除、重命名工作表
  • 单元格操作:读取、写入、修改单元格内容
  • 样式设置:设置单元格的字体、颜色、边框等样式。
from openpyxl import Workbook, load_workbook# 创建一个新的 Excel 文件
wb = Workbook()
ws = wb.active
ws.title = "Sheet1"# 写入数据
ws['A1'] = "Name"
ws['B1'] = "Age"
ws['A2'] = "Alice"
ws['B2'] = 25
ws['A3'] = "Bob"
ws['B3'] = 30# 保存文件
wb.save("example.xlsx")# 读取 Excel 文件
wb = load_workbook("example.xlsx")
ws = wb["Sheet1"]# 读取单元格数据
for row in ws.iter_rows(min_row=1, max_col=2, max_row=3, values_only=True):print(row)

openpyxl其他用法

创建与删除

  1. 创建新的工作表:

    wb.create_sheet('NewSheet')
    
  2. 删除工作表:

    del wb['SheetName']
    

操作单元格

  1. 访问单元格:

    • 通过坐标访问:
      cell = ws['A1']
      
    • 通过行和列索引访问:
      cell = ws.cell(row=1, column=1)
      
  2. 获取单元格的值:

    value = ws['A1'].value
    
  3. 遍历行和列:

    • 遍历所有行:
      for row in ws.iter_rows():for cell in row:print(cell.value)
      
    • 遍历特定范围的单元格:
      for row in ws['A1':'C3']:for cell in row:print(cell.value)
      

追加数据

  1. 在现有工作表末尾追加一行:

    from openpyxl import load_workbookwb = load_workbook('example.xlsx')
    ws = wb.active# 获取当前最后一行的行号
    max_row = ws.max_row# 追加新行
    new_row = ['Value1', 'Value2', 'Value3']
    for col_idx, value in enumerate(new_row, start=1):cell = ws.cell(row=max_row + 1, column=col_idx)cell.value = valuewb.save('example.xlsx')
    
  2. 使用 openpyxl.utils 追加数据:

    from openpyxl import load_workbook
    from openpyxl.utils import get_column_letterwb = load_workbook('example.xlsx')
    ws = wb.activemax_row = ws.max_row
    new_data = [['Value1', 'Value2', 'Value3'],['Value4', 'Value5', 'Value6']
    ]for row_idx, row_data in enumerate(new_data, start=max_row + 1):for col_idx, value in enumerate(row_data, start=1):col_letter = get_column_letter(col_idx)cell = ws[f'{col_letter}{row_idx}']cell.value = valuewb.save('example.xlsx')
    
  3. 使用 ws.append 追加数据:

ws.append 方法接受一个列表作为参数,列表中的每个元素会被依次写入工作表当前最后一行的每个单元格中

  1. 创建一个新的工作簿并追加数据:

    from openpyxl import Workbook# 创建一个新的工作簿
    wb = Workbook()
    ws = wb.active# 追加一行数据
    ws.append(['Value1', 'Value2', 'Value3'])# 保存工作簿
    wb.save('example.xlsx')
    
  2. 在现有工作簿中追加数据:

    from openpyxl import load_workbook# 加载现有的工作簿
    wb = load_workbook('example.xlsx')
    ws = wb.active# 追加多行数据
    ws.append(['Value4', 'Value5', 'Value6'])
    ws.append(['Value7', 'Value8', 'Value9'])# 保存工作簿
    wb.save('example.xlsx')
    
  3. 追加包含公式的行:

    from openpyxl import load_workbook# 加载现有的工作簿
    wb = load_workbook('example.xlsx')
    ws = wb.active# 追加包含公式的行
    ws.append(['SUM(A1:A10)', 'AVERAGE(B1:B10)'])# 保存工作簿
    wb.save('example.xlsx')
    

格式化单元格

  1. 设置字体样式:

    from openpyxl.styles import Fontcell = ws['A1']
    cell.font = Font(size=14, bold=True, color='FF0000')
    
  2. 设置单元格填充颜色:

    from openpyxl.styles import PatternFillfill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')
    cell.fill = fill
    
  3. 设置边框:

    from openpyxl.styles import Border, Sidethin = Side(border_style='thin', color='000000')
    border = Border(left=thin, right=thin, top=thin, bottom=thin)
    cell.border = border
    

合并单元格

  1. 合并单元格:

    ws.merge_cells('A1:B1')
    
  2. 取消合并单元格:

    ws.unmerge_cells('A1:B1')
    

插入图片

  1. 插入图片:
    from openpyxl.drawing.image import Imageimg = Image('example.png')
    ws.add_image(img, 'A1')
    

公式

  1. 设置公式:
    cell = ws['A1']
    cell.value = '=SUM(B1:B10)'
    

打印设置

  1. 设置打印区域:

    ws.print_area = 'A1:D10'
    
  2. 设置页眉和页脚:

    ws.header_footer.center_header.text = "&[Date]"
    ws.header_footer.right_footer.text = "&[Page] of &[Pages]"
    

保护工作表

  1. 保护工作表:

    ws.protection.password = 'password'
    ws.protection.enable()
    
  2. 取消保护工作表:

    ws.protection.disable()
    

其他功能

  • 条件格式化:

    from openpyxl.formatting import Rule
    from openpyxl.styles import PatternFill
    from openpyxl.styles.differential import DifferentialStylered_fill = PatternFill(start_color='FF0000', end_color='FF0000', fill_type='solid')
    dxf = DifferentialStyle(fill=red_fill)
    rule = Rule(type='expression', dxf=dxf, formula=['A1>10'])
    ws.conditional_formatting.add('A1:A10', rule)
    
  • 数据验证:

    from openpyxl.worksheet.datavalidation import DataValidationdv = DataValidation(type='list', formula1='"Item1,Item2,Item3"', allow_blank=True)
    dv.add('A1')
    ws.add_data_validation(dv)
    
  • 超链接:

    from openpyxl.cell import Cell
    from openpyxl.worksheet.hyperlink import Hyperlinkcell = ws['A1']
    cell.value = 'Click here'
    cell.hyperlink = Hyperlink(display='Click here', ref='A1', location='https://www.example.com')
    

2. pandas 库

pandas 是一个强大的数据分析库,支持读取和写入 Excel 文件。它通常用于处理结构化数据,如表格数据

主要功能

  • 读取 Excel 文件:将 Excel 文件加载为 DataFrame
  • 写入 Excel 文件:将 DataFrame 保存为 Excel 文件
  • 数据处理:支持数据筛选、排序、聚合等操作
  • 多工作表操作:支持读取和写入多个工作表
import pandas as pd# 读取 Excel 文件
df = pd.read_excel("example.xlsx", sheet_name="Sheet1", engine='openpyxl')
print(df)# 数据处理
df['Age'] = df['Age'] + 1  # 将年龄加 1
print(df)# 写入 Excel 文件
df.to_excel("modified_example.xlsx", index=False)

3. xlrd 和 xlwt 库

xlrd 用于读取 Excel 文件(仅支持旧版 .xls 格式),xlwt 用于写入 Excel 文件(仅支持旧版 .xls 格式)

主要功能

  • 读取 Excel 文件:xlrd 可以读取 .xls 文件的内容
  • 写入 Excel 文件:xlwt 可以创建或修改 .xls 文件
import xlrd
import xlwt# 读取 Excel 文件
workbook = xlrd.open_workbook("example.xls")
sheet = workbook.sheet_by_index(0)
for row in range(sheet.nrows):print(sheet.row_values(row))# 写入 Excel 文件
workbook = xlwt.Workbook()
sheet = workbook.add_sheet("Sheet1")
sheet.write(0, 0, "Name")
sheet.write(0, 1, "Age")
sheet.write(1, 0, "Alice")
sheet.write(1, 1, 25)
workbook.save("example.xls")

4. xlsxwriter 库

xlsxwriter 一个专门用于写入 Excel 文件的库,支持创建复杂的 Excel 文件,如添加图表、公式、条件格式等

主要功能

  • 创建 Excel 文件:支持创建 .xlsx 文件
  • 高级功能:支持图表、公式、条件格式、数据验证等
  • 样式设置:支持设置单元格样式
import xlsxwriter# 创建一个新的 Excel 文件
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet('Sheet1')# 写入数据
worksheet.write('A1', 'Name')
worksheet.write('B1', 'Age')
worksheet.write('A2', 'Alice')
worksheet.write('B2', 25)# 添加图表
chart = workbook.add_chart({'type': 'column'})
chart.add_series({'values': '=Sheet1!B2:B2'})
worksheet.insert_chart('D2', chart)# 保存文件
workbook.close()

5. pyxlsb 库

pyxlsb 用于读取 Excel 二进制文件(.xlsb 格式)

主要功能

  • 读取 .xlsb** 文件**:支持读取 Excel 二进制文件
from pyxlsb import open_workbook# 读取 Excel 二进制文件
with open_workbook('example.xlsb') as wb:with wb.get_sheet(1) as sheet:for row in sheet.rows():print([item.v for item in row])

应用场景

  • 数据导入导出:将数据库或其他数据源的数据导出为 Excel 文件,或从 Excel 文件中导入数据
  • 报表生成:使用 openpyxl 或 xlsxwriter 生成带有图表和样式的报表
  • 数据分析:使用 pandas 对 Excel 文件中的数据进行清洗、分析和可视化
  • 自动化任务:批量处理多个 Excel 文件,如合并、拆分、格式转换等

参考资料

  • openpyxl 官方文档
  • pandas 官方文档
  • xlrd 官方文档
  • xlwt 官方文档
  • xlsxwriter 官方文档
  • pyxlsb 官方文档

相关文章:

python文件操作相关(excel)

python文件操作相关(excel) 1. openpyxl 库openpyxl其他用法创建与删除操作单元格追加数据格式化单元格合并单元格插入图片公式打印设置保护工作表其他功能 2. pandas 库3. xlrd 和 xlwt 库4. xlsxwriter 库5. pyxlsb 库应用场景参考资料 在 Python 中&a…...

利用Abel_Cain软件实现ARP欺骗

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主…...

搭建android开发环境 android studio

1、环境介绍 在进行安卓开发时,需要掌握java,需要安卓SDK,需要一款编辑器,还需要软件的测试环境(真机或虚拟机)。 早起开发安卓app,使用的是eclipse加安卓SDK,需要自行搭建。 目前开…...

使用 Python -m build打包 Python 项目:详解过程与细节

使用 Python -m build 打包 Python 项目:详解过程与细节 Python 项目的打包是发布和分发软件的核心环节。本文将基于用户提供的 pyproject.toml 文件和项目目录结构,详细说明 Python -m build 命令的执行过程,并解答 是否会将 oe_eval 中的代…...

019-spring-基于aop的事务控制原理

1、事务配置&#xff1a; <tx:annotation-driven transaction-manager"transactionManager"/> transaction-manager 默认是找这个bean&#xff1a;transactionManager 2、从命名空间开始找到对应的解析配置如下&#xff1a; 对应的是这个 后续跟源码没有搞明…...

210.xxl-job定时任务:架构,可视化,GLUE模式,负载均衡,分片

目录 一、为什么要用xxl-job 二、xxl-job架构 三、启动调度中心 1.初始化数据库 2.编译源码 四、启动执行器 五、GLUE模式运行 六、负载均衡 七、分片 1.分片环境准备 2.分片实现 八、感谢支持 一、为什么要用xxl-job 以前我们用quartz实现定时任务,但是那是单机…...

LVS 负载均衡原理 | 配置示例

注&#xff1a;本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时&#xff0c;可以看看原理实现。 未整理去重。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写&#xff0c;翻…...

堆内存易碎片化

堆内存容易碎片化主要是由于其内存分配和释放的特性以及管理方式的复杂性所导致的。以下是对堆内存容易碎片化的详细解释&#xff1a; 一、内存分配和释放的非连续性 堆内存的分配和释放并不是连续的&#xff0c;这意味着在多次分配和释放后&#xff0c;原本连续的内存空间可…...

Docker镜像瘦身:从1.43G到22.4MB

Docker镜像瘦身:从1.43G到22.4MB 背景1、创建项目2、构建第一个镜像3、修改基础镜像4、多级构建5、使用Nginx背景 在使用 Docker 时,镜像大小至关重要。我们从 create-react-app (https://reactjs.org/docs/create-a-new-react-app.html)获得的样板项目通常都超过 1.43 GB…...

Linux套接字通信学习

Linux套接字通信 代码源码&#xff1a;https://github.com/say-Hai/TcpSocketLearn/tree/CThreadSocket 在网络通信的时候, 程序猿需要负责的应用层数据的处理(最上层)&#xff0c;而底层的数据封装与解封装&#xff08;如TCP/IP协议栈的功能&#xff09;通常由操作系统、网络协…...

XIAO Esp32S3制作网络摄像头——音频获取

1、功能介绍 本文主要是基于XIAO Esp32S3(Sense)做的一款网络摄像头,主要包含以下功能 1 音频获取/保存 2 视频获取/视频保存 3 行人检测/火焰检测/行人追踪(告警) 4 指定区域 5 摄像头旋转 。。。 本文主要实现第一步,音频获取,后续会陆续实现后面的功能,敬请期…...

Docker搭建RocketMQ

Docker搭建RocketMQ 操作系统: CentOS 7 x64 版本号: CentOS Linux release 7.9.2009 (Core) IP地址: 192.168.157.130 Docker 信息: Client: Docker Engine - Community Version: 24.0.7 API version: 1.43 Go version: go1.20.10 Git commit: …...

Python 迭代器与生成器

Python 中的迭代器和生成器是处理集合元素的重要工具&#xff0c;它们在处理大量数据时特别有用&#xff0c;因为它们不需要一次性将所有数据加载到内存中。 迭代器&#xff08;Iterator&#xff09; 迭代器是一个实现了迭代器协议的对象&#xff0c;这意味着它有两个方法&am…...

细说STM32F407单片机通过IIC读写EEPROM 24C02

目录 一、操作说明 二、工程配置 1、时钟、DEBUG、GPIO、USART6、NVIC、Code Generator 2、 IIC2 &#xff08;1&#xff09;Master Features组&#xff0c;主设备参数 &#xff08;2&#xff09;Slave Features组&#xff0c;从设备参数 三、软件设计 1、KELED 2、E…...

Redis 深度解析:从入门到精通

引言 Redis 是一个开源的、高性能的键值存储系统&#xff0c;它支持多种数据结构&#xff0c;并且提供了丰富的功能和接口。作为内存数据库&#xff0c;Redis 以其快速的数据访问速度、灵活的数据模型以及持久化选项而闻名。本文将详细介绍 Redis 的核心概念、工作原理及其应用…...

6-pandas数据读取

前言 一、分组聚合 1.groupby使用&#xff1a; groupby() 是 pandas 库中用于对数据进行分组操作的一个非常重要的方法。 import pandas as pddata {城市: [北京, 上海, 广州, 北京, 上海, 广州],人口: [2154, 2424, 1303, 2154, 2424, 1303],年龄: [25, 30, 35, 25, 30, 3…...

omi friend实战记录

一、简介 omi friend是国外githab上开源的一个“AI硬件”的制作教程&#xff0c;它的形状是个三角形&#xff0c;属于项链佩戴这类的。可以接入llm进行对话&#xff0c;他有麦克风、扬声器&#xff0c;还有电池。外形好看&#xff0c;功能实用。还有专属的一系列app可以供方便…...

马原复习笔记

文章目录 前言导论物质实践人类社会资本主义社会主义共产主义后记 前言 一月二号下午四点多考试&#xff0c;很友好&#xff0c;不是早八&#xff0c;哈哈哈。之前豪言壮语和朋友说这次马原要全对&#xff0c;多做了几次测试之后&#xff0c;发现总有一些知识点是自己不知道的…...

VIM: Vision Mamba基于双向状态空间模型的高效视觉表示学习

这篇文章的主要内容可以概括如下&#xff1a; 背景与动机&#xff1a; 近年来&#xff0c;状态空间模型&#xff08;SSM&#xff09;在长序列建模中展现出巨大潜力&#xff0c;尤其是Mamba模型在硬件感知设计上的高效性。 然而&#xff0c;现有的SSM模型在处理视觉数据时面临…...

CannotRetrieveUpdates alert in disconnected OCP 4 cluster解决

环境&#xff1a; Red Hat OpenShift Container Platform (RHOCP) 4 问题&#xff1a; Cluster Version Operator 不断发送警报&#xff0c;表示在受限网络/断开连接的 OCP 4 集群中无法接收更新。 在隔离的 OpenShift 4 集群中看到 CannotRetrieveUpdates 警报&#xff1a; …...

libmodbus源码中重要的两个结构体讲解

文章目录 一、libmodbus重要数据结构讲解**1. 结构体 `_modbus`**定义成员解析小结**2. 结构体 `_modbus_backend`**定义成员解析小结**3. 两者关系和工作流程****关系****工作流程**一、libmodbus重要数据结构讲解 这两个结构体是 libmodbus 的核心,定义了 Modbus 通信上下文…...

PostgreSQL的一主两从集群搭建部署 (两同步)

一、实验环境 虚拟机名IP身份简称keep-postgres12-node1192.168.122.87主节点node1keep-postgres12-node2192.168.122.89备节点node2keep-postgres12-node3192.168.122.90备节点node3 二、安装数据库 源码包方式&#xff08;主&#xff09; 1、创建用户 [rootkeep-postgre…...

CPT203 Software Engineering 软件工程 Pt.5 软件测试(中英双语)

文章目录 8. 软件测试8.1 Testing&#xff08;测试&#xff09;8.1.1 A note of testing under the V & A framework8.1.2 The Basics8.1.3 The Goals8.1.4 The Stages 8.2 Developing testing&#xff08;开发测试&#xff09;8.2.1 Unit testing&#xff08;单元测试&…...

在 Blazor 和 ASP.NET Core 中使用依赖注入和Scoped 服务实现数据共享方法详解

依赖注入&#xff08;Dependency Injection&#xff0c;简称 DI&#xff09;是一种设计模式&#xff0c;用于将对象的依赖关系从对象内部解耦出来&#xff0c;由外部容器进行管理和提供。在 Blazor 和 ASP.NET Core 中&#xff0c;DI 是内置的核心功能&#xff0c;它通过服务生…...

【信号滤波 (下)】采样条件,多种滤波算法对比(Matlab/C++)

目录 一、信号采样条件采样定理ADC的SPS设置 二、常用滤波算法对比A.滑动平均滤波B.陷波滤波陷波滤波器简介FIR(有限脉冲响应)滤波器和IIR(无限脉冲响应)滤波器 基于IIR实现陷波滤波滤波原理讲解双二阶滤波器计算过程陷波滤波优势 在上一篇中&#xff0c;介绍了信号时域到频域的…...

将广播发送和接收端实现一遍,完成一个发送端发送信息,对应多个接收端接收信息实验。

1、将广播发送和接收端实现一遍&#xff0c;完成一个发送端发送信息&#xff0c;对应多个接收端接收信息实验。 接受端 #include<myhead.h> #define handel_err(res,val) if(val-1){perror(res);return-1;} int main(int argc, const char *argv[]) {int rfdsocket(AF_…...

Nginx 负载均衡详解

一、Nginx 简介 Nginx 是一个高性能的开源 Web 服务器和反向代理服务器&#xff0c;以其轻量级、高并发、低内存消耗等特点著称。Nginx 不仅适用于静态资源的快速分发&#xff0c;还广泛应用于负载均衡、反向代理等场景。通过Nginx&#xff0c;可以轻松地构建一个高效、可靠且…...

自动驾驶新纪元:城区NOA功能如何成为智能驾驶技术的分水岭

目录 一、NOA 的定义 二、NOA 的主要特点 导航集成 场景覆盖 智能决策 高级感知能力 驾驶员参与 三、NOA 的优势 四、NOA的衡量指标 定性评价指标 安全性评价指标定义 可靠性评价指标定义 舒适性评价指标定义 通行效率评价指标 定量评价指标 五、代表厂商的实测…...

FFmpeg 编码和解码

文章目录 音频格式AACADIF音频数据交换格式ADTS音频数据传输流 音频解码音频编码 视频格式H264GOP图像组I帧&#xff0c;P帧&#xff0c;B帧H264压缩技术H264压缩级别H264视频级别H264码流结构SPSPPS 解码视频编码视频 音频格式 AAC AAC全称 Advanced Audio Coding&#xff0…...

【Ubuntu】Ubuntu server 18.04 搭建Slurm并行计算环境(包含NFS)

Ubuntu server 18.04 搭建Slurm并行计算环境&#xff08;包含NFS&#xff09; 一、Munge 认证模块 1.1、安装 munge 主节点和子节点都安装munge #安装 sudo apt update && sudo apt install munge libmunge-dev#设置开机启动 sudo systemctl enable munge sudo syste…...

WPF 绘制过顶点的圆滑曲线 (样条,贝塞尔)

在一个WPF项目中要用到样条曲线&#xff0c;必须过顶点&#xff0c;圆滑后还不能太走样&#xff0c;捣鼓一番&#xff0c;发现里面颇有玄机&#xff0c;于是把我多方抄来改造的方法发出来&#xff0c;方便新手&#xff1a; 如上图&#xff0c;看代码吧&#xff1a; ----------…...

Spring 的不同事务传播行为

目录 Spring 的不同事务传播行为 PROPAGATION_REQUIRES_NEW事务传播行为什么情况下会使用? 一、PROPAGATION_REQUIRES_NEW的含义 二、使用场景 三、注意事项 PROPAGATION_NESTED事务传播行为什么情况下会使用? 一、PROPAGATION_NESTED的含义 二、使用场景 三、嵌套事…...

PlantUML 时序图 基本例子

基本的例子 序列-> 用于绘制两个参与者之间的信息。参与者不必明确声明。 要有一个点状的箭头&#xff0c;就用--> 也可以用<- 和<-- 。这不会改变绘图&#xff0c;但可能提高可读性。注意&#xff0c;这只适用于顺序图&#xff0c;其他图的规则不同。 plantum…...

QILSTE H8-C414SY高亮黄光LED灯珠 发光二极管LED

在电子组件的复杂世界中&#xff0c;H8-C414SY型号的LED以其精确的技术参数和卓越的性能&#xff0c;成为了工程师和技术人员不可忽视的选择。本文将通过对这款高亮黄光LED的技术参数进行深入分析&#xff0c;增加文本的复杂性和突发性&#xff0c;以提供一份详尽的技术参考。 …...

git clone 和 conda 换源

文章目录 git clone 通过 sshconda 创建虚拟环境通过 env.yml 文件conda 换源 git clone 通过 ssh git clone ssh://用户名IP地址:/仓库名字.gitconda 创建虚拟环境通过 env.yml 文件 conda env create -f environment.ymlconda 换源 Step 1 生成 .bashrc 文件在家目录下。…...

Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(下)

在上一篇博客《Spring Boot 多数据源解决方案&#xff1a;dynamic-datasource-spring-boot-starter 的奥秘》介绍了dynamic-datasource-spring-boot-starter的自动配置类和配置属性类之后&#xff0c;本文继续来剖析多数据源是如何切换的&#xff0c;什么时候切换的。 前文中提…...

移动 APP 设计规范参考

一、界面设计规范 布局原则&#xff1a; 内容优先&#xff1a;以内容为核心进行布局&#xff0c;突出用户需要的信息&#xff0c;简化页面导航&#xff0c;提升屏幕空间利用率.一致性&#xff1a;保持界面元素风格一致&#xff0c;包括颜色、字体、图标等&#xff0c;使用户在…...

yolov6算法及其改进

yolov6算法及其改进 1、YOLOV6简介2、RepVGG重参思想3、YOLOv6架构改进3.1、Backbone方面3.2、SPP改进3.3、Neck改进3.4、Head改进 4、正负样本匹配与损失函数4.1、TaskAligned样本匹配4.2、VFL Loss分类损失函数4.3、SIOU损失函数4.4、DFL损失函数 1、YOLOV6简介 YOLOv6设计主…...

java自定义注解对枚举类型参数的校验

目录 1.前提准备条件 1.1 pom.xml文件依赖: 1.2 枚举类&#xff1a; 1.3 controller接口&#xff1a; 1.4 实体参数&#xff1a; 1.5 knife4j的配置 2.实现要求 3.实现步骤 3.1 自定义注解类&#xff1a; 3.2 使用注解&#xff1a; 3.3 添加注解校验类&#xff1a; …...

K8S-LLM:用自然语言轻松操作 Kubernetes

在 Kubernetes (K8s) 的日常管理中&#xff0c;复杂的命令行操作常常让开发者感到头疼。无论是部署应用、管理资源还是调试问题&#xff0c;都需要记住大量的命令和参数。Kubernetes 作为容器编排的行业标准&#xff0c;其强大的功能伴随着陡峭的学习曲线和复杂的命令行操作。这…...

【GO基础学习】gin的使用

文章目录 模版使用流程参数传递路由分组数据解析和绑定gin中间件 模版使用流程 package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {// 1.创建路由r : gin.Default()// 2.绑定路由规则&#xff0c;执行的函数// gin.Context&#x…...

【PCIe 总线及设备入门学习专栏 4.5 -- PCIe Message and PCIe MSI】

文章目录 PCIe Message 与 MSIPCIe Message 和 MSI 的作用与关系MSI 的配置与寄存器MSI 和 ARM GIC 的关系示例&#xff1a;MSI 在 ARM GIC 的实际应用总结 PCIe Message 与 MSI 本文将介绍 PCIe message 的作用以及message 与 MSI 的关系&#xff0c;再介绍 MSI 如何配置以及…...

sklearn_pandas.DataFrameMapper的用法

文章目录 介绍主要作用基本用法示例对不同列应用不同的转换器对多列应用相同的转换器输出为 Pandas DataFrame 注意事项转换器的适用性&#xff1a;输出格式&#xff1a;与 scikit-learn 的兼容性&#xff1a; 介绍 DataFrameMapper 是 sklearn-pandas 库中的一个工具&#xf…...

【2024年-7月-27日-开源社区openEuler实践记录】剖析 elease - management:优化软件发布流程的开源方案

开篇介绍 大家好&#xff0c;我是 fzr123&#xff0c;在软件开发流程管控领域探索许久&#xff0c;今天要给大家详细说说release - management这个极具价值的开源项目。在软件开发的生命周期里&#xff0c;发布管理至关重要&#xff0c;它关乎着软件能否稳定、高效且按时交付&…...

CPT203 Software Engineering 软件工程 Pt.1 概论和软件过程(中英双语)

文章目录 1.Introduction1.1 What software engineering is and why it is important&#xff08;什么是软件工程&#xff0c;为什么它很重要&#xff09;1.1 We can’t run the modern world without software&#xff08;我们的世界离不开软件&#xff09;1.1.1 What is Soft…...

Mysql数据库Redo日志和Undo日志的理解

数据库redo日志和undo日志 1、redo日志1.1 redo日志的作用1.1.1 不使用redo日志的问题1.1.2 使用redo日志的好处 1.2 redo日志刷盘策略 2、undo日志2.1 undo日志的作用2.2 undo日志的简要生成过程 1、redo日志 事务的4大特性&#xff08;ACID&#xff09;&#xff1a;原子性、…...

大厂高频总线协议面试题及参考答案(几百家面试题挑选最高频精华)

目录 请介绍一下 SPI 总线协议及其工作原理,包括 SPI 有哪四种模式以及四根线的电气特性是什么? SPI 通信的波特率是多少,时钟来源是什么?SPI 的帧长度和数据格式是怎样的? 请简述 IIC 协议及其工作原理,包括 IIC 协议最多能挂载多少个从设备? IIC 总线上挂不同的设备…...

使用策略模式时的一个生效问题

策略模式的替换场景&#xff1a; 1&#xff1a;产品有默认策略A,B,项目扩展策略C&#xff0c;此为正常扩展。 2&#xff1a;产品有默认策略A,B,项目需要改写策略B&#xff0c;此为项目替换默认策略。 3&#xff1a;产品有默认策略A,B,项目扩展策略C&#xff0c;产品需要反向扩展…...

活动预告 |【Part2】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载

课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft 云技术的了解。参加我们举办的“迁移和保护 Windows Server 和 SQL Server 工作负载”活动&#xff0c;了解 Azure 如何为将工作负载…...

关于 PCB线路板细节锣槽问题 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/144783817 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...