Python酷库之旅-第三方库openpyxl(07)
目录
一、 openpyxl库的由来
1、背景
2、起源
3、发展
4、特点
4-1、支持.xlsx格式
4-2、读写Excel文件
4-3、操作单元格
4-4、创建和修改工作表
4-5、样式设置
4-6、图表和公式
4-7、支持数字和日期格式
二、openpyxl库的优缺点
1、优点
1-1、支持现代Excel格式
1-2、功能丰富
1-3、易于使用
1-4、与Excel兼容性
1-5、性能良好
1-6、社区支持
1-7、跨平台
2、缺点
2-1、不支持旧版格式
2-2、某些特性支持有限
2-3、内存占用
2-4、文档和示例可能不足
2-5.、依赖关系
2-6、学习曲线
三、openpyxl库的用途
1、读取Excel文件
2、写入Excel文件
3、修改Excel文件
4、自动化
5、与Excel交互
6、数据迁移和转换
7、创建模板化的报告
四、如何学好openpyxl库?
1、获取openpyxl库的属性和方法
2、获取xlwt库的帮助信息
3、用法精讲
3-31、openpyxl.worksheet.worksheet.Worksheet.set_printer_settings函数
3-31-1、语法
3-31-2、参数
3-31-3、功能
3-31-4、返回值
3-31-5、说明
3-31-6、用法
3-32、openpyxl.worksheet.worksheet.Worksheet.unmerge_cells函数
3-32-1、语法
3-32-2、参数
3-32-3、功能
3-32-4、返回值
3-32-5、说明
3-32-6、用法
3-33、openpyxl.cell.cell.Cell.check_error函数
3-33-1、语法
3-33-2、参数
3-33-3、功能
3-33-4、返回值
3-33-5、说明
3-33-6、用法
3-34、openpyxl.cell.cell.Cell.check_string函数
3-34-1、语法
3-34-2、参数
3-34-3、功能
3-34-4、返回值
3-34-5、说明
3-34-6、用法
3-35、openpyxl.cell.cell.Cell.offset函数
3-35-1、语法
3-35-2、参数
3-35-3、功能
3-35-4、返回值
3-35-5、说明
3-35-6、用法
五、推荐阅读
1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
一、 openpyxl库的由来
openpyxl库的由来可以总结为以下几点:
1、背景
在openpyxl库诞生之前,Python中缺乏一个专门用于读取和编写Office Open XML格式(如Excel 2010及更高版本的.xlsx文件)的库。
2、起源
openpyxl库的创建是为了解决上述提到的Python在处理Excel文件时的不足,它的开发受到了PHPExcel团队的启发,因为openpyxl最初是基于PHPExcel的。
3、发展
随着时间的推移,openpyxl逐渐发展成为一个功能强大的Python库,专门用于处理Excel文件。它支持Excel 2010及更高版本的文件格式,并提供了丰富的API,用于读取、写入、修改Excel文件。
4、特点
4-1、支持.xlsx格式
openpyxl主要用于处理Excel 2010及更新版本的.xlsx文件。
4-2、读写Excel文件
使用openpyxl可以读取现有的Excel文件,获取数据,修改数据,并保存到新的文件中。
4-3、操作单元格
openpyxl允许用户按行、列或具体的单元格进行数据的读取和写入。
4-4、创建和修改工作表
用户可以创建新的工作表,复制和删除现有的工作表,设置工作表的属性等。
4-5、样式设置
openpyxl支持设置单元格的字体、颜色、边框等样式。
4-6、图表和公式
用户可以通过openpyxl创建图表、添加公式等。
4-7、支持数字和日期格式
openpyxl能够正确处理数字和日期格式,确保在Excel中显示正确的格式。
综上所述,openpyxl库的出现填补了Python在处理Excel文件时的空白,经过不断的发展和完善,成为了一个功能丰富、易于使用的Python库。
二、openpyxl库的优缺点
openpyxl库是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库,它基于Python,并且对于处理Excel文件提供了很多便利的功能,其主要优缺点有:
1、优点
1-1、支持现代Excel格式
openpyxl支持.xlsx格式的Excel文件,这是Excel 2010及更高版本使用的格式,也是目前广泛使用的格式。
1-2、功能丰富
openpyxl提供了创建、修改和保存Excel工作簿、工作表、单元格、图表、公式、图像等功能。
1-3、易于使用
openpyxl的API设计得相对直观,使得Python开发者能够很容易地掌握和使用。
1-4、与Excel兼容性
openpyxl能够处理Excel文件中的很多复杂特性,如公式、样式、条件格式等,这确保了与Excel的良好兼容性。
1-5、性能良好
在处理大型Excel文件时,openpyxl通常能够保持较好的性能。
1-6、社区支持
openpyxl是一个开源项目,拥有活跃的社区支持和维护,这意味着开发者可以获得帮助和修复错误的快速响应。
1-7、跨平台
openpyxl可以在不同的操作系统上运行,包括Windows、Linux和macOS等。
2、缺点
2-1、不支持旧版格式
openpyxl不支持较旧的.xls格式(Excel 97-2003)。如果需要处理这种格式的文件,需要使用其他库如xlrd和xlwt(尽管这些库也面临一些兼容性和维护问题)。
2-2、某些特性支持有限
虽然openpyxl支持许多Excel特性,但可能对于某些高级或特定的Excel功能支持有限或不支持。
2-3、内存占用
在处理大型Excel文件时,openpyxl可能会占用较多的内存。这是因为openpyxl会将整个工作簿加载到内存中。
2-4、文档和示例可能不足
尽管openpyxl的文档相对完整,但对于某些高级功能或特定用例,可能缺乏足够的示例或详细解释。
2-5.、依赖关系
openpyxl依赖于lxml和et_xmlfile这两个Python库来处理XML和Excel文件,在某些环境中,可能需要额外安装这些依赖项。
2-6、学习曲线
虽然openpyxl的API设计得相对直观,但对于初学者来说,可能需要一些时间来熟悉和掌握其用法。
三、openpyxl库的用途
openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它是用Python编写的,不需要Microsoft Excel,并且支持多种Excel数据类型,包括图表、图像、公式等,其主要用途有:
1、读取Excel文件
你可以使用openpyxl来读取 Excel 文件中的数据,如单元格值、工作表名称、公式等,它支持多种数据类型,如字符串、数字、日期等。
2、写入Excel文件
使用openpyxl,你可以创建新的Excel文件或向现有文件添加数据,你可以设置单元格的字体、颜色、边框等样式,你还可以添加图表、图像和其他复杂的Excel功能。
3、修改Excel文件
你可以使用openpyxl来修改现有的Excel文件,如更改单元格值、添加或删除工作表等,这对于自动化数据处理和报告生成非常有用。
4、自动化
openpyxl可以与其他Python库和框架(如 pandas、numpy、matplotlib 等)结合使用,以自动化数据处理和分析任务。你可以编写脚本来从多个数据源收集数据,将数据整合到 Excel 文件中,并执行各种数据分析任务。
5、与Excel交互
如果你正在开发需要与Excel交互的应用程序或工具,openpyxl可以提供一个强大的API来处理Excel文件,它允许你读取和写入Excel文件,而无需依赖Microsoft Excel或其他第三方库。
6、数据迁移和转换
使用openpyxl,你可以轻松地将数据从Excel文件迁移到其他数据库或文件格式,或将其他数据源的数据导入到Excel文件中。
7、创建模板化的报告
你可以使用openpyxl来创建模板化的Excel报告,并在需要时填充数据,这对于需要定期生成具有一致格式和布局的报告的场景非常有用。
总之,openpyxl是一个功能强大的库,可用于在Python中处理Excel文件,它提供了灵活的API来读取、写入、修改和自动化Excel文件的各个方面。
四、如何学好openpyxl库?
1、获取openpyxl库的属性和方法
用print()和dir()两个函数获取openpyxl库所有属性和方法的列表
# ['DEBUG', 'DEFUSEDXML', 'LXML', 'NUMPY', 'Workbook', '__author__', '__author_email__', '__builtins__', '__cached__',
# '__doc__', '__file__', '__license__', '__loader__', '__maintainer_email__', '__name__', '__package__', '__path__',
# '__spec__', '__url__', '__version__', '_constants', 'cell', 'chart', 'chartsheet', 'comments', 'compat', 'constants',
# 'descriptors', 'drawing', 'formatting', 'formula', 'load_workbook', 'open', 'packaging', 'pivot', 'reader', 'styles',
# 'utils', 'workbook', 'worksheet', 'writer', 'xml']
2、获取xlwt库的帮助信息
用help()函数获取openpyxl库的帮助信息
Help on package openpyxl:NAMEopenpyxl - # Copyright (c) 2010-2024 openpyxlPACKAGE CONTENTS_constantscell (package)chart (package)chartsheet (package)comments (package)compat (package)descriptors (package)drawing (package)formatting (package)formula (package)packaging (package)pivot (package)reader (package)styles (package)utils (package)workbook (package)worksheet (package)writer (package)xml (package)SUBMODULESconstantsDATADEBUG = FalseDEFUSEDXML = FalseLXML = TrueNUMPY = True__author_email__ = 'charlie.clark@clark-consulting.eu'__license__ = 'MIT'__maintainer_email__ = 'openpyxl-users@googlegroups.com'__url__ = 'https://openpyxl.readthedocs.io'VERSION3.1.3AUTHORSee AUTHORSFILEe:\python_workspace\pythonproject\lib\site-packages\openpyxl\__init__.py
3、用法精讲
3-31、openpyxl.worksheet.worksheet.Worksheet.set_printer_settings函数
3-31-1、语法
set_printer_settings(self, paper_size, orientation)Set printer settings
3-31-2、参数
3-31-2-1、self(必须):一个对实例对象本身的引用,在类的所有方法中都会自动传递。
3-31-2-2、paper_size(可选):指定打印时使用的纸张大小。
3-31-2-3、orientation(可选):设置打印方向,指定打印时是纵向还是横向。
3-31-3、功能
设置工作表的打印配置,包括纸张大小、方向、页边距等。
3-31-4、返回值
没有返回值,它通过直接修改工作表对象的属性来应用打印设置。
3-31-5、说明
无
3-31-6、用法
# 31、openpyxl.worksheet.worksheet.Worksheet.set_printer_settings函数
from openpyxl import Workbook
from openpyxl.worksheet.page import PageSetup
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 设置打印设置
ws.set_printer_settings(paper_size=PageSetup.PAPERSIZE_A4, orientation=PageSetup.ORIENTATION_LANDSCAPE)
# 保存工作簿
wb.save("example.xlsx")
3-32、openpyxl.worksheet.worksheet.Worksheet.unmerge_cells函数
3-32-1、语法
unmerge_cells(self, range_string=None, start_row=None, start_column=None, end_row=None, end_column=None)Remove merge on a cell range. Range is a cell range (e.g. A1:E1)
3-32-2、参数
3-32-2-1、self(必须):一个对实例对象本身的引用,在类的所有方法中都会自动传递。
3-32-2-2、range_string(可选):一个字符串,表示要取消合并的单元格范围。例如,"A1:D1" 表示从A1单元格到D1单元格的范围。
3-32-2-3、start_row(可选):一个整数(默认值为None),表示要取消合并的起始行索引。
3-32-2-4、start_column(可选):一个整数(默认值为None),表示要取消合并的起始列索引。
3-32-2-5、end_row(可选):一个整数(默认值为None),表示要取消合并的结束行索引。
3-32-2-6、end_column(可选):一个整数(默认值为None),表示要取消合并的结束列索引。
3-32-3、功能
用于取消工作表中的合并单元格,该函数通过指定合并区域的范围,将该范围内的所有单元格恢复为独立的单元格。
3-32-4、返回值
没有返回值。它直接对工作表进行操作,取消指定范围内的合并单元格,而不会返回任何数据。
3-32-5、说明
无
3-32-6、用法
# 32、openpyxl.worksheet.worksheet.Worksheet.unmerge_cells函数
from openpyxl import Workbook
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 合并单元格
ws.merge_cells('A1:D1')
# 取消合并单元格
ws.unmerge_cells('A1:D1') # 没有返回值
# 保存工作簿
wb.save("example.xlsx")
3-33、openpyxl.cell.cell.Cell.check_error函数
3-33-1、语法
check_error(self, value)Tries to convert Error" else N/A
3-33-2、参数
3-33-2-1、self(必须):一个对实例对象本身的引用,在类的所有方法中都会自动传递。
3-33-2-2、value(必须):一个字符串或数值,表示需要检查的值。
3-33-3、功能
用于检测单元格中的内容是否为错误值。
3-33-4、返回值
返回一个布尔值。如果单元格中的值是错误值,则返回True;反之,则返回False。
3-33-5、说明
3-33-5-1、该方法仅检查传入的值是否为标准的Excel错误值,并不涉及单元格中的公式或其他内容。
3-33-5-2、检查的错误值是固定的,主要包括#DIV/0!、
#N/A
、#NAME?
、#NULL!
、#NUM!
、#REF!
和#VALUE!
等。
3-33-6、用法
# 33、openpyxl.cell.cell.Cell.check_error函数
from openpyxl import Workbook
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 设置一些单元格值,包括一个错误值
ws['A1'] = 5
ws['A2'] = 0
ws['A3'] = '=A1/A2' # 这是一个错误值,会导致 #DIV/0!
# 检查单元格A3是否有错误
cell = ws['A3']
has_error = cell.check_error("#DIV/0!")
print(f"Cell A3 has error: {has_error}") # 输出:Cell A3 has error: #DIV/0!
# 保存工作簿
wb.save("example.xlsx")
3-34、openpyxl.cell.cell.Cell.check_string函数
3-34-1、语法
check_string(self, value)Check string coding, length, and line break character
3-34-2、参数
3-34-2-1、self(必须):一个对实例对象本身的引用,在类的所有方法中都会自动传递。
3-34-2-2、value(必须):一个字符串,表示需要检查的值。
3-34-3、功能
用于检查传入的值是否为一个有效的字符串。
3-34-4、返回值
3-34-4-1、如果value是一个有效的字符串,此方法不会返回任何内容。
3-34-4-2、如果value不是一个有效的字符串,此方法会引发TypeError或ValueError异常。
3-34-5、说明
3-34-5-1、此方法仅检查值是否为字符串,并不检查字符串的长度或内容是否符合其他特定要求。
3-34-5-2、如果传入的值不是字符串或包含非法字符,该方法会引发异常,而不是返回一个布尔值。
3-34-6、用法
# 34、openpyxl.cell.cell.Cell.check_string函数
from openpyxl import Workbook
from openpyxl.cell import Cell
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 创建一个单元格对象
cell = Cell(ws, 'A1')
# 一个有效的字符串值
value = "Hello, OpenPyxl!"
# 检查值是否为有效的字符串
try:cell.check_string(value)print(f"The value '{value}' is a valid string.")
except (TypeError, ValueError) as e:print(f"The value '{value}' is not a valid string: {e}")
# 一个无效的值(例如,包含非法字符或不是字符串)
invalid_value = 12345
try:cell.check_string(invalid_value)print(f"The value '{invalid_value}' is a valid string.")
except (TypeError, ValueError) as e:print(f"The value '{invalid_value}' is not a valid string: {e}")
# 保存工作簿
wb.save("example.xlsx")
# The value 'Hello, OpenPyxl!' is a valid string.
# The value '12345' is not a valid string: decoding to str: need a bytes-like object, int found
3-35、openpyxl.cell.cell.Cell.offset函数
3-35-1、语法
offset(self, row=0, column=0)Returns a cell location relative to this cell.:param row: number of rows to offset:type row: int:param column: number of columns to offset:type column: int:rtype: :class:`openpyxl.cell.Cell`
3-35-2、参数
3-35-2-1、self(必须):一个对实例对象本身的引用,在类的所有方法中都会自动传递。
3-35-2-2、row(可选):一个整数类型(默认为 0
,即不进行行偏移),表示指定相对于当前单元格的行偏移量。正值表示向下偏移,负值表示向上偏移。
3-35-2-3、 column(可选):一个整数类型(默认为 0
,即不进行列偏移),表示指定相对于当前单元格的列偏移量。正值表示向右偏移,负值表示向左偏移。
3-35-3、功能
用于在 Excel 工作表中相对于当前单元格的位置偏移。
3-35-4、返回值
返回一个新的Cell对象,表示相对于当前单元格位置的偏移位置的单元格。
3-35-5、说明
无
3-35-6、用法
# 35、openpyxl.cell.cell.Cell.offset函数
from openpyxl import Workbook
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 在A1单元格中写入数据
cell = ws['A1']
cell.value = "Hello"
# 偏移函数:获取当前单元格偏移1行2列的位置
offset_cell = cell.offset(row=1, column=2)
# 在偏移位置的单元格中写入数据
offset_cell.value = "World"
# 保存工作簿
wb.save("example.xlsx")
五、推荐阅读
1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
相关文章:

Python酷库之旅-第三方库openpyxl(07)
目录 一、 openpyxl库的由来 1、背景 2、起源 3、发展 4、特点 4-1、支持.xlsx格式 4-2、读写Excel文件 4-3、操作单元格 4-4、创建和修改工作表 4-5、样式设置 4-6、图表和公式 4-7、支持数字和日期格式 二、openpyxl库的优缺点 1、优点 1-1、支持现代Excel格式…...
使用Python进行Web开发:从基础到实战
使用Python进行Web开发:从基础到实战 Python不仅是一门数据科学的利器,也是一门强大的Web开发语言。得益于其简洁的语法和丰富的生态系统,Python在Web开发领域同样大放异彩。本文将介绍Python在Web开发中的基础知识、常用框架以及一个完整的实战项目,帮助读者从基础入门到…...
打包体积分析和优化
webpack分析工具:webpack-bundle-analyzer 1. 通过<script src"./vue.js"></script>方式引入vue、vuex、vue-router等包(CDN) // webpack.config.js if(process.env.NODE_ENVproduction) {module.exports {devtool:…...
numpy的array/asarray/asanyarray的格式转化错误问题解决
关于numpy的array()、asarray()、asanyarray() 当前numpy版本:1.26.3 有时一些依赖numpy的旧项目,在运行时,会出现如下错误 ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1…...

C++:STL容器-map
C:STL容器-map 1. map构造和赋值2. map大小和交换3. map插入和删除4. map查找和统计5. map容器排序 map中所有元素都是pair(对组) pair中第一个元素为key(键),起到索引作用,第二个元素为value(实…...

你好,复变函数2.0
第一行:0 或 1 第二行:(空格)函数(后缀) #pragma warning(disable:4996) #include <easyx.h> #include <stdio.h> #include <math.h> #define PI 3.141592653589793 #define E 2.71828…...

汉语拼音字母表 (声母表和韵母表)
汉语拼音字母表 [声母表和韵母表] 1. 汉语拼音声母表2. 汉语拼音韵母表References 1. 汉语拼音声母表 声母是韵母前的辅音,与韵母一起构成一个完整的音节。 辅音是发声时,气流在口腔中受到各种阻碍所产生的声音,发音的过程即是气流受阻和克…...

C++20中的Feature Test Mocros
C20定义了一组预处理器宏,用于测试各种语言和库的feature。 Feature Test Mocros(特性测试宏)是C20中引入的一种强大机制,用于应对兼容性问题。Feature Test Mocros作为预处理器指令(preprocessor directives)出现,它使你能够在编译过程中仔细…...

运维iptables与firewalld详解
iptables与firewalld 一、iptables 1.1 iptables简介 iptables 是一个在 Linux 系统上用来配置 IPv4 数据包过滤规则的工具。它允许系统管理员控制数据包的流向,实现网络安全、网络地址转换(NAT)和端口转发等功能。 具体来说,…...

适用于 Android 的 几种短信恢复应用程序
Android 设备上的短信丢失可能由于多种原因而丢失,例如意外删除、恢复出厂设置、系统崩溃或病毒攻击。是否有应用程序可以恢复 Android 上已删除的短信?幸运的是,有几款短信恢复应用程序可以扫描您的 Android 手机并从内存或 SIM 卡中检索已删…...
Lodash-js工具库
1. Lodash 简介 Lodash 是一个现代 实用工具库,提供了许多有用的函数,帮助开发者处理常见的编程任务,如数组操作、对象处理、字符串处理等。Lodash 使得代码更简洁、更高效,极大地提高了开发效率。Lodash 的设计灵感来自于 Under…...
Makefile实战论(一)
为什么写这个呢,其实我有系统学过Makefile和CMake。但是因为用的不是很多或者说没有深入的使用场景,导致我不是很熟练,或者说没法优雅地使用。刚好最近对Linux的嵌入式编程比较感兴趣,借着demo来分析一下资深工程师写的Makefile&a…...

Hi3861 OpenHarmony嵌入式应用入门--PWM 三色灯
这篇文章是讲解的pwm控制三色灯的部分,这部分也是后续全彩智能灯的基础。 硬件原理如下 IO管脚定义在hi-12f_v1.1.2-规格书-20211202.pdf文档中 GPIO API API名称 说明 unsigned int IoTGpioInit(unsigned int id); GPIO模块初始化 hi_u32 hi_io_set_func(hi_i…...

CH5xx USB下载工具
文章目录 CH5xx USB下载工具1.前言2.介绍3. USB下载4. 串口免按键下载4.SWD下载 CH5xx USB下载工具 1.前言 CH5xx USB下载工具是一款专为沁恒 CH5xx系列 BLE SOC设计的程序的下载工具。这款工具与串口下载相比较,不仅提供了稳定的数据传输能力,而且提高…...
问题1.用PGP解密出keybox.xml,过程中报“Can‘t check signature: No public key”如图,这个正常吗?如何解决?
问题1.我要写Google attenstation key到设备。就需要keybox.xml生成keybox.kdb文件。而测试机构给我们的是加密的文件,需要用PGP解密出keybox.xml,过程中报“Can’t check signature: No public key”如图,这个正常吗?如何解决&am…...

网络物理隔离后 可以用保密U盘进行数据安全交换吗?
企业用的保密U盘通常被设计用于存储和传输敏感信息,以确保数据的安全和保密性。 在网络之间实现了物理隔离后,使用保密U盘进行数据安全交换是一种常见的做法。物理隔离确保了两个网络之间的完全分离,因此使用保密U盘可以作为一种安全的手段来…...
机械臂 CoppeliaSim Simulink联合仿真
实现机械臂在CoppeliaSim(以前称为V-REP)和Simulink上的联合仿真涉及多个步骤,包括环境设置、模型导入、通信配置、控制算法设计和测试调试。 前期准备 安装软件配置工作环境创建和配置CoppeliaSim场景 导入机械臂模型配置机械臂参数在Simuli…...

MySQL数据库(一):数据库介绍与安装
在嵌入式开发中,数据库的重要性体现在高效的数据存储和管理、数据持久化、复杂查询和处理、数据同步和共享、安全性和可扩展性。常见嵌入式数据库包括SQLite、MySQL、LevelDB等,应用于智能家居、工业控制、车载系统和物联网设备,提升了系统功…...

天津媒体邀约,及媒体名单?
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传加速季,100万补贴享不停,一手媒体资源,全国100城线下落地执行。详情请联系胡老师。 天津作为中国北方的重要城市,拥有丰富的媒体资…...

Java | Leetcode Java题解之第168题Excel表列名称
题目: 题解: class Solution {public String convertToTitle(int columnNumber) {StringBuffer sb new StringBuffer();while (columnNumber ! 0) {columnNumber--;sb.append((char)(columnNumber % 26 A));columnNumber / 26;}return sb.reverse().t…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...