Python Excel 高阶教程:使用 Spire.XLS 插入、修改和删除迷你图

Python 操作 Word 文档:主流库对比与选择指南

在办公自动化、报告生成、数据处理等领域,利用 Python 程序化地创建、读取或修改 Microsoft Word 文档 (.docx 格式) 是一项非常实用的技能。Python 生态中有多个优秀的库可以完成这项任务,但它们各有侧重和优缺点。选择哪一个“最好用”,关键在于你的具体需求是什么

本文将从功能、易用性、适用场景等方面,对比分析几个最主流的 Python 库,帮助你做出明智的选择。

文章目录

  • Python 操作 Word 文档:主流库对比与选择指南
    • 核心候选库
    • 一、python-docx - 基础创建与修改的首选
    • 二、docxcompose - 组合多个文档的好手
    • 三、docxtpl - 强大的模板驱动生成
    • 四、Free Spire.Doc for Python - 免费、跨平台、功能全面的选择
    • 五、pywin32 / comtypes - 直接操控 MS Word (Windows Only)
    • 六、Unoconv(Unoserver) / LibreOffice API - 开源替代方案 (间接)
    • 库选择指南与建议
      • 1\. 处理 `.doc` (旧格式) 文件
      • 2\. 核心功能需求
      • 3\. 运行环境考量
      • 4\. 预算与限制容忍度
      • 总结与建议
    • 官方文档

核心候选库

  1. python-docx
  2. docxcompose (基于 python-docx)
  3. docxtpl (基于 python-docx)
  4. Free Spire.Doc for Python
  5. pywin32 / comtypes (Windows Only)
  6. Unoconv / LibreOffice API (间接/命令行)

一、python-docx - 基础创建与修改的首选

定位:
python-docx 是一个专注于读写 .docx 文件的纯 Python 库. 它是操作现代 Word 文档 (OOXML 格式) 的事实标准流行选择之一.

优点:

  • 纯 Python,跨平台: 可以在 Windows、macOS、Linux 上运行.
  • 专注于核心功能: 提供创建文档、添加段落、标题、表格、图片、设置基本样式(字体、大小、颜色、对齐)、页眉页脚等操作的清晰 API.
  • 成熟稳定,社区活跃: 文档完善,用户众多,问题容易找到解决方案.
  • 开源免费 (MIT License).

缺点:

  • 不支持 .doc (旧格式): 仅处理 .docx.
  • 高级格式控制有限: 对极其复杂的布局、部分 Word 高级功能(如某些域代码、复杂的页眉页脚嵌套、修订跟踪)的支持较弱或需要深入研究底层 XML.
  • 不支持打开 Word 应用程序: 纯文件操作,无法与 Word GUI 交互.
  • 模板替换相对基础: 虽然原生支持简单的文本替换,但复杂的模板填充(如循环、条件判断)需要自己构建逻辑或借助其他库(如 docxtpl).

使用的开源协议:

  • python-docx 库被标识为在 MIT 许可证下授权 。这一信息在其官方 PyPI 项目页面和 GitHub 仓库中均有明确说明。
  • MIT 许可证:极度宽松,鼓励自由使用。允许商业使用、修改、分发。需保留版权和许可声明,不提供担保 。

适用场景:

  • 从头开始生成结构化的 Word 报告、信件.
  • 读取现有 .docx 文件中的文本、表格内容.
  • 对现有 .docx 进行相对简单的修改(替换文本、添加/删除段落/表格).
  • 需要跨平台运行的基础 Word 文档自动化.

简单示例:

from docx import document
from docx.shared import Pt, RGBColordoc = document()  # 创建新文档
# 添加标题
title = doc.add_heading('项目报告', level=0)
title.alignment = 1  # 居中
# 添加段落
p = doc.add_paragraph('这是一份使用 ')
p.add_run('python-docx').bold = True
p.add_run(' 生成的报告。')
# 设置字体样式
run = p.runs[1]
run.font.size = Pt(14)
run.font.color.rgb = RGBColor(0x42, 0x24, 0xE9)  # 蓝色
# 保存
doc.save('demo_report.docx')

二、docxcompose - 组合多个文档的好手

定位:
docxcompose 库专门用于将多个 .docx 文档合并或组合成一个文档. 它构建在 python-docx 之上,解决了 python-docx 原生不支持流畅合并文档的痛点.

优点:

  • 解决特定痛点: 在需要拼接多个独立生成的 .docx 文件时(如合并多个章节的报告),比手动操作或自己处理底层 XML 方便得多.
  • 继承 python-docx 优点: 跨平台、纯 Python.
  • 通常能较好地处理合并后的样式(但复杂样式仍需注意).

缺点:

  • 功能单一: 仅专注于文档合并/组合. 其他操作仍需依赖 python-docx 或其他库.
  • 样式继承/冲突: 合并来自不同模板或样式定义差异大的文档时,可能出现样式冲突或不一致,需要额外处理.

使用的开源协议:

  • docxcompose 的当前稳定版本,例如2022年12月14日上传的1.4.0版本,已在MIT 许可证下授权。

适用场景:

  • 将多个由不同脚本或模块生成的 .docx 片段组合成一个完整文档.
  • 自动化报告组装流程.

简单示例:

from docxcompose.composer import Composer
from docx import documentmaster = document("title_page.docx")  # 主文档(如封面)
appendix = document("appendix.docx")   # 待合并的附录
report = document("main_report.docx")  # 待合并的主报告composer = Composer(master)
composer.append(report)
composer.append(appendix)composer.save("combined_report.docx")

三、docxtpl - 强大的模板驱动生成

定位:
docxtpl 基于 python-docxJinja2 模板引擎,专注于使用模板文件进行复杂的文档生成. 它擅长处理需要循环、条件判断、变量替换的场景.

优点:

  • 强大的模板功能: 利用成熟的 Jinja2 语法,在 Word 模板中直接定义占位符 ({{ variable }})、循环 ({% for item in list %})、条件 ({% if condition %}).
  • 保留格式: 渲染过程会尽力保留模板中设置的所有格式(样式、布局、图片位置等).
  • 简化复杂文档生成: 对于数据驱动的报告(发票、合同、证书、个性化信函),比直接用 python-docx 写代码构建所有内容高效清晰很多.
  • 开源免费 (MIT License).

缺点:

  • 依赖模板文件: 需要先手动创建一个设计好的 .docx 模板文件.
  • 学习曲线: 需要理解基本的 Jinja2 模板语法.
  • 底层操作限制: 难以完成在渲染后动态添加非常复杂内容或进行深度 XML 操作的需求,不够灵活.

使用的开源协议:

  • docxtpl 库是在 LGPL-2.1-only 下授权的 。此信息明确显示在项目的 PyPI 元数据中。
  • LGPL-2.1-only:弱复制左,平衡开源与商业集成。可与专有软件链接,修改库需开源。需提供替换 LGPL 组件的方式 。

适用场景:

  • 根据数据库查询结果、JSON 数据等填充预定义格式的 Word 模板.
  • 生成大量结构相似但内容不同的文档(如员工合同、客户报价单、成绩单).
  • 需要在报告中插入动态列表、表格行.

简单示例:
模板 (template.docx): 包含类似 {{ company_name }}{{ client_name }} 的占位符,以及使用 Jinja2 循环的表格行。

from docxtpl import docxTemplatedoc = docxTemplate("template.docx")
context = {'company_name': '千禧年科技有限公司','client_name': 'Ms. Yuuka','items': [{'desc': '软件许可', 'qty': 2, 'price': 1500.00},{'desc': '技术服务', 'qty': 10, 'price': 200.00},],'total': 5000.00
}
doc.render(context)  # 将数据注入模板
doc.save("generated_invoice.docx")

四、Free Spire.Doc for Python - 免费、跨平台、功能全面的选择

定位:
Free Spire.Doc for Python 是一个功能丰富的免费库,专为处理 Word 文档(包括 .doc.docx 格式)而设计,不依赖 Microsoft Office 安装。它是商业库 Spire.Doc for Python 的免费版本,可作为评估商业库功能的理想选择.

优点:

  • 免费: 核心功能可免费使用.
  • 跨平台: 支持 Windows、macOS、Linux,乃至国产操作系统.
  • 支持 .doc.docx 能够处理新旧两种 Word 文档格式.
  • 功能全面: 提供创建、读取、修改文档,添加文本、图片、表格、形状、超链接、书签、页眉页脚、水印(简单)、设置样式、文档保护,以及格式转换(如转 PDF、HTML、图片等)等功能. API 设计被认为比 python-docx 更面向对象.
  • 无需安装 Microsoft Office: 核心优势在于无需 Microsoft Office 环境即可运行,特别适合在服务器或容器等无 Office 场景中部署脚本.

缺点:

  • 性能: 对于极简单的操作,可能不如纯 Python 的 python-docx 轻量.
  • 社区和支持: 社区活跃度和文档资源不如 python-docx 丰富,免费用户支持有限.
  • 免费版限制: 单个文档不能超过 500 段落和 25 个表格. 转换为 PDF、XPS 时仅能获取前 3 页. 对于长文档或需要完整转换功能,建议考虑其商业版 Spire.Doc for Python,它支持 PDF 完整转换、无水印、无页数限制.

适用场景:

  • 需要同时处理 .doc.docx 格式的中短文档,尤其是在没有安装 Microsoft Office 的环境中.
  • 需要简单的格式转换功能(如 Word 转 PDF).
  • 预算为零,且 python-docx 无法满足需求(主要是 .doc 支持或商业 API 风格偏好).
  • 作为评估 Spire.Doc 功能的方式,免费版非常合适;若评估后功能满足但受限于免费版约束,商业版 Spire.Doc for Python 提供无限制的解决方案.

简单示例:

from spire.doc import document, FileFormat
from spire.doc.documents import ParagraphStyle, StyleType# 创建新文档
doc = document()
section = doc.AddSection()
# 添加段落并设置样式
para = section.AddParagraph()
txt_range = para.AppendText("Hello, Free Spire.Doc!")
# 应用内置样式
para.ApplyStyle(BuiltinStyle.Title)
# 保存为 .docx
doc.SaveToFile("output.docx", FileFormat.docx2016)
doc.Close()

五、pywin32 / comtypes - 直接操控 MS Word (Windows Only)

定位:
这两个库提供了对 Windows COM 对象的访问,允许 Python 脚本完全控制本地安装的 Microsoft Word 应用程序. 可以做到几乎任何在 Word 界面上手动能做的事情.

优点:

  • 功能强大而完整: 因为本质是操控 MS Word,故支持 Word 的所有功能,包括打开 .doc.docx、执行宏、高级格式设置、修订跟踪、邮件合并、打印、保存为 PDF 等.
  • 所见即所得: 操作过程直接在 Word 应用程序中可见.
  • 利用已有 VBA 知识: 很多操作逻辑与 VBA 类似.
  • 开源免费 (PSF License for pywin32, MIT License for comtypes).

缺点:

  • 仅限 Windows: 必须运行在有 Microsoft Word 安装的 Windows 机器上,难以在其它平台部署项目.
  • 依赖外部程序: 需要启动 Word 进程,速度较慢,资源消耗更大,且不利于需要多端运行的项目.
  • 稳定性风险: Word 进程可能崩溃或被用户意外干扰,导致脚本不稳定.
  • 更复杂: COM 对象模型相对庞大复杂,学习和调试难度高.
  • 环境依赖: 部署环境必须正确安装 Word 且版本兼容性有时会带来问题.

使用的开源协议:

  • pywin32 在 Python 软件基金会许可证(PSF) 下授权。该许可证被公认为 OSI 批准,表明其符合开源原则。
  • comtypes 在 MIT 许可证下授权。虽然最新的 GitHub 页面显示“查看许可证”而未显示完整文本,但 PyPI 的1.1.0版本条目明确指出MIT。
  • Python软件基金会许可证 (PSF):宽松,促进Python软件自由使用。允许商业使用、修改、分发。需保留版权和许可声明,不提供担保 。

适用场景:

  • 需要操作 .doc 旧格式文件.
  • 必须使用 Word 特有且 python-docxSpire.Doc 等库不支持的高级功能(如复杂的邮件合并、特定的域代码操作、调用宏).
  • 需要将 Word 文档转换为 PDF 或 XPS(利用 Word 内置的“另存为”功能).

简单示例 (使用 pywin32):

import win32com.client as win32word = win32.Dispatch('Word.Application')
word.Visible = True  # 是否显示 Word 界面
doc = word.documents.Open(r'C:\path\to\your\document.docx')
# 找到并替换文本
find = word.Selection.Find
find.Text = "旧公司名"
find.Replacement.Text = "新公司名"
find.Execute(Replace=win32.constants.wdReplaceAll)
# 保存并退出
doc.Save()
doc.Close()
word.Quit()

六、Unoconv(Unoserver) / LibreOffice API - 开源替代方案 (间接)

重要提醒:根据 Unoconv 官方 GitHub 自述文件,Unoconv 已弃用. 官方推荐的重写版本名为 “Unoserver”:https://github.com/unoconv/unoserver/.
Unoserver 尚未完全具备 Unoconv 的所有功能,其后续开发取决于社区需求及贡献者的实现意愿. 在 Unoserver 支持主要功能之前,Unoconv 将仅修复错误而不再进行重大更新. 待 Unoserver 实现 Unoconv 的核心功能后,Unoconv 将停止维护. 尽管如此,截至 2025 年 7 月 29 日,Unoconv 仍受到维护,但为稳定性考虑,仍建议关注 Unoserver 的发展.

定位:

  • unoconv: 一个命令行工具,利用 LibreOffice/OpenOffice 的守护进程进行文档格式转换(如 Word 转 PDF, Word 转 ODT 等).
  • LibreOffice API (UNO): 直接通过 Python 调用 LibreOffice 的功能(类似 pywin32 调用 Word). 非常强大但 API 极其复杂.

优点:

  • 免费开源.
  • 跨平台.
  • 强大的格式转换能力 (unoconv).
  • 理论上功能接近 Word COM (UNO API).

缺点:

  • unoconv: 只能转换,不能编辑内容. 依赖外部 LibreOffice 进程.
  • UNO API: 学习曲线陡峭,文档相对较少,社区支持不如 MS Office COM. 部署配置可能复杂.
  • 社区支持不稳定: Unoconv 正经历弃用升级,其继任者 Unoserver 还未完全具备 Unoconv 的所有功能,但现阶段其社区支持不如其他方案稳定.

使用的开源协议:

  • Unoconv 明确表示已弃用。
  • 其直接的重写和继任者,Unoserver 在 MIT 许可证下授权。
  • LibreOffice 套件本身,提供转换的底层 API,主要在 Mozilla 公共许可证v2.0 (MPL v2.0) 下提供。

适用场景:

  • 主要需求是将 Word 文档批量转换为 PDF 或其他格式 (unoconv 是最简单选择).
  • 需要在非 Windows 环境下获得接近 COM 的功能,且愿意投入时间学习复杂的 UNO API.

库选择指南与建议

选择最合适的 Python Word 库关键在于您的具体需求。以下是根据不同场景和优先级的决策指南:

1. 处理 .doc (旧格式) 文件

  • 推荐: Free Spire.Doc for Python.
    • 优势: 跨平台,无需安装 Microsoft Office,支持 .doc.docx. 对于中短文档免费版即可满足.
    • 考虑: 如果文档较长且需要完整功能,可升级到 Spire.Doc for Python 商业版.
  • 备选: pywin32 / comtypes.
    • 优势: 能够直接操作安装在 Windows 系统上的 Microsoft Word 应用程序,功能最为全面.
    • 限制: 仅限 Windows 平台,且必须安装 Word.

2. 核心功能需求

  • 基础创建、读取、修改文本、表格、图片、样式 (仅 .docx):
    • 推荐: python-docx.
    • 优势: 纯 Python、跨平台、易上手、社区活跃,是 .docx 基础操作的事实标准.
  • 基于模板填充数据 (带循环、条件判断):
    • 推荐: docxtpl.
    • 优势: 结合 Jinja2 模板引擎,能高效生成复杂、数据驱动的文档,同时保留格式.
  • 合并多个 .docx 文件成一个:
    • 推荐: docxcompose.
    • 优势: 专为合并文档设计,解决了 python-docx 的痛点.
    • 注意: 遵循 GPLv3 许可证,若项目闭源或商业分发需谨慎.
  • 需要 Word 所有高级功能 (修订、邮件合并、宏等) 且环境为 Windows 并安装 Word:
    • 推荐: pywin32 / comtypes.
    • 优势: 直接控制 Word 应用程序,功能最完整.
  • 批量将 Word 文档转换为 PDF 或其他格式:
    • 推荐: Unoconv / Unoserver.
    • 优势: 命令行工具,简单易用,尤其适合批量转换.
    • 备选: Free Spire.Doc for Python (免费版有页数限制,商业版无限制), pywin32 (利用 Word 内置功能).

3. 运行环境考量

  • 必须跨平台 (Windows/macOS/Linux):
    • 排除 pywin32 / comtypes.
    • 优先考虑 python-docxdocxcomposedocxtplFree Spire.Doc for PythonUnoconv / LibreOffice UNO.
  • 只有 Windows 且安装了 Word:
    • 所有选项均可用.
  • 国产系统:
    • 建议考虑 Free Spire.Doc for PythonSpire.Doc for Python 商业版.

4. 预算与限制容忍度

  • 必须完全免费开源且无功能/数量限制:
    • python-docx 系列.
    • pywin32 / comtypes (限 Windows).
    • Unoconv / LibreOffice UNO (注意许可证和弃用情况).
  • 可以接受中短文档和其他免费版限制:
    • Free Spire.Doc for Python 是处理 .doc 或在无 Office 环境下操作文档的优秀免费选项.
  • 有商业预算,需要高级功能、无限制、或专业支持:
    • 考虑 Spire.Doc for Python 商业版 或其他商业解决方案.

总结与建议

  • 入门首选 & 基础操作: 对于大多数 .docx 操作任务,python-docx 是起点和基石. 它免费、跨平台、易上手,是“好用”的标杆.
  • 模板驱动生成: 如果工作涉及填充设计好的模板,docxtpl 能显著提升效率和代码可读性,强烈推荐.
  • 合并文档的好手: 需要拼接文档时,docxcomposepython-docx 生态的完美补充.
  • 轻量即用,灵活初探,支持 .doc 及转换: Free Spire.Doc for Python 是一款免费、跨平台、支持 .doc 且无需安装 Microsoft Office 的库. 非常适合中短文档、测试或功能评估. 对于需要突破某些限制的生产环境,Spire.Doc for Python 商业版是直接的升级选择.
  • Windows 高级功能/旧格式需求: 仅当免费库无法满足高级需求或需要处理 .doc 时,pywin32 / comtypes 是次要备选,但需承受环境依赖和稳定性风险.
  • 格式转换简单方案: unoconv 是命令行下 Word 转 PDF 等格式的便捷工具.

建议的实践路径:

  1. python-docx 开始尝试,解决大部分常见需求.
  2. 若涉及模板功能,无缝结合 docxtpl.
  3. 若需合并文档,选择 docxcompose.
  4. 若需处理 .doc 格式,或在无 Office 环境下操作,或想评估商业库功能,优先考虑 Free Spire.Doc for Python.
  5. 仅当 python-docx / docxtpl / Free Spire.Doc 都无法解决特定高级需求必须处理 .doc需要可视化操作过程时,才考虑 pywin32 / comtypes.
  6. 对于纯粹的格式转换unoconvFree Spire.Doc 是更简单的选择.

官方文档

python-docx 官方文档 | docxcompose github | docxtpl 官方文档 | pywin32 官方文档 | comtypes 官方文档 | Spire.Doc for Python 中文教程 | Unoconv github | Unoserver github

希望这篇详尽的对比分析能帮助你根据项目特点,选出最趁手的 Python 库,高效地完成 Word 文档自动化任务!祝你编码愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/91843.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/91843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebPages PHP:深入解析PHP在网页开发中的应用

WebPages PHP:深入解析PHP在网页开发中的应用 引言 随着互联网技术的飞速发展,PHP作为一种开源的脚本语言,已经在网页开发领域占据了举足轻重的地位。本文将深入探讨PHP在网页开发中的应用,包括其优势、常用框架、开发流程以及未来…

【深度学习】【三维重建】windows11环境配置PyTorch3d详细教程

【深度学习】【三维重建】windows11环境配置PyTorch3d详细教程 文章目录【深度学习】【三维重建】windows11环境配置PyTorch3d详细教程前言确定版本对应关系源码编译安装Pytorch3d总结前言 本人windows11下使用搭建PyTorch3d环境,故此以详细教程以该算法依赖的环境…

SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:日志管理(四)集成Spring Security

目录 一、前言 二、后端开发及调整 1.日志管理开发 2.配置调整 3.日志入库(注解、切面) 三、前端调整 1.日志管理开发 四、附:源码 1.源码下载地址 五、结语 一、前言 此文章在上次调整的基础上开发后端管理系统的用户请求日志功能&…

ceph 14.2.22 nautilus Balancer 数据平衡

Ceph Balancer (upmap 模式) 启用与配置 在 Ceph Nautilus (14.2.22) 版本中启用和配置 Balancer 的完整步骤 1. 前提检查 检查集群的初始状态和版本。 集群状态 (ceph -s)cluster:id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxhealth: HEALTH_OKservices:mon: 3 daemons, quo…

在Linux上对固态硬盘进行分区、格式化和挂载的步骤

在Linux上对固态硬盘进行分区、格式化和挂载的步骤如下: 插入固态硬盘:将固态硬盘插入计算机的SATA或M.2接口。 确认固态硬盘被识别:打开终端,输入以下命令查看硬盘是否被系统识别 fdisk -l 查找硬盘列表中的固态硬盘&#xf…

用Unity结合VCC更改人物模型出现的BUG

1、上传模型时出现错误经过排查是因为服装发型预制体放到人物模型上之后,物体上自动多了一个空脚本,怀疑是VRC工具箱自动添加的。解决方法:在上传前将带有空脚本的物体上的组件删除即可2、添加头发时出现模型碰撞错误按照【【VRCHAT】从零开始…

k8s之DevicePlugin

解密 Kubernetes Device Plugin:让容器轻松驾驭特殊硬件 在容器化技术飞速发展的今天,容器凭借轻量、隔离、可移植的特性成为应用部署的主流选择。但在实际应用中,当容器需要访问 GPU、FPGA 等特殊硬件资源时,事情就变得不那么简单…

动态规划Day7学习心得

今天给动态规划扫个尾,还有两题。 第一道:647. 回文子串 - 力扣(LeetCode) 暴力解法 两层for循环,遍历区间起始位置和终止位置,然后还需要一层遍历判断这个区间是不是回文。所以时间复杂度:O…

SpringCloud实战:机器人对战系统架构

基于Spring Cloud的机器人对战 以下是基于Spring Cloud的机器人对战实例相关案例和技术实现方向的整理,涵盖微服务架构设计、通信机制及典型应用场景: 分布式对战系统架构 采用Spring Cloud Alibaba+Nacos实现服务注册与发现,每个机器人实例作为独立微服务部署。通过Open…

LLM 核心能力解构与项目实践指南

大语言模型(LLM)的爆发式发展,本质上是其核心能力在产业场景中的规模化验证。作为技术博主,本文将系统拆解 LLM 的六大核心能力,结合工业级项目案例,提供从能力映射到工程实现的完整技术路径,并…

retro-go 1.45 编译及显示中文

最近做了个使用 retro-go 的开源掌机 基于ESP32-S3的C19掌机(适配GBC外壳) - 立创开源硬件平台 ,做完后用提供的固件发现屏幕反显了,估计是屏幕型号不太对,随即自己拉 retro-go 官方库来编译,拉取的最新的 …

中州养老项目:Mybatis自动填充拦截器

功能:在新增护理项目的时候,创建人,创建时间和修改时间字段会自动拦截填充,这些公共字段可以省去我们一个一个处理的麻烦依靠:AutoFillInterceptor拦截器,MybatisConfig配置类第一步:我们需要借助一个MybatisConfig,configuration标志着这是一个配置类,我们需要将autoFillInter…

[创业之路-527]:什么是产品技术成熟度曲线?

产品技术成熟度曲线(Gartner Hype Cycle)是由全球知名咨询机构Gartner提出的工具,用于可视化展示新兴技术从诞生到成熟的发展轨迹,以及市场对其预期和实际采用趋势的变化。该曲线通过五个阶段刻画技术生命周期,帮助企业…

VScode对Ubuntu用root账号进行SSH远程连接开发

由于linux服务器大部分都是基于命令行的操作,缺乏比较方便好用的编辑工具,对于经常在linux服务器上做开发的同学来说直接在服务器上进行开发或配置文件的修改还不是特别的方便。虽然linux上有vi或vim比起图形化的编辑工具体验感还是不是很好。作为程序员…

【物联网】基于树莓派的物联网开发【20】——树莓派控制DHT11温湿度传感器实战

传感器概述 DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度5%RH, 温度2℃,量程湿度20-90%RH, 温度0~50℃。分为3个接口,分别为:VCC, DATA, GND。 产品图片主要用途 检测环境温湿度 GPIO控制DHT11温湿度传…

AI原生数据库:告别SQL的新时代来了?

在2025年的今天,生成式AI的浪潮正以前所未有的力量重塑着各行各业。从代码生成到艺术创作,大型语言模型(LLM)的能力边界不断被拓宽。现在,这股浪潮正涌向信息技术领域最古老、最核心的基石之一:数据库。一个…

题单【模拟与高精度】

P1042 [NOIP 2003 普及组] 乒乓球 P1042 [NOIP 2003 普及组] 乒乓球 - 洛谷 #include<bits/stdc.h> using namespace std;char C; string S; int n,A,B;void Work(int Lim) {for(char i:S){if(iW) A;if(iL) B;if(max(A,B)>Lim && abs(A-B)>2){cout<<…

数据结构学习基础和从包装类缓存到泛型擦除的避坑指南

目录 1.数据结构的概念和算法 1.1 数据结构的概念 1.2 数据结构的集合框架 1.3 算法 1.3.1 时间复杂度 1.3.2 空间复杂度 2.包装类 2.1 为什么需要包装类&#xff1f; 2.2 装箱和拆箱 3. 初识泛型 3.1 认识泛型 3.2 泛型类的使用 3.3 泛型的编译 3.4 通配符 3.4.1 …

网络安全基础知识【6】

什么是防火墙1.防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、 专用网与公共网之间的界面上构造的保护屏障 2.防火墙实际上是一种隔离技术 3.防火墙重要的特征是增加了区域的概念防火墙的定义 隔离可信与不可信网络的设备/软件&#xff0c;基于策略控制流量…

Apache Doris数据库——大数据技术

Apache Doris一、简介1.1、Apache Doris简介1.2、Apache Doris 与传统大数据架构相比1.3、doris是java团队掌控大数据能力最优选择1.4、 OLTP&#xff08;在线事务处理&#xff09; 与 OLAP&#xff08;在线分析处理&#xff09;1.5、发展历程1.6、应用现状1.7、整体架构1.7.1、…