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

Python 自动化办公:Excel 数据处理的“秘密武器”

引言

        在日常的 IT 办公场景里,Excel 是数据处理与分析的 “常胜将军”。无论是财务人员整理账目、销售团队统计业绩,还是运营人员分析用户数据,Excel 都发挥着关键作用。但面对海量数据,手动操作 Excel 不仅效率低下,还容易出错。Python 凭借其强大的库支持,能轻松实现 Excel 自动化处理,让繁琐的工作变得简单高效。本文将结合实际案例,带大家走进 Python 自动化操作 Excel 的世界,掌握实用的代码技巧。


1 常用 Python 库介绍

1.1 openpyxl

        openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。它功能丰富,支持对单元格的读写、格式设置、图表操作等,适合处理较为复杂的Excel文件。

1.2 pandas

        pandas 是数据分析领域的明星库,它提供了高效的数据结构和数据分析工具。虽然它本身不直接操作 Excel 文件格式,但通过 to_excel() 和 read_excel() 方法,可以方便地与 Excel 进行数据交互,常用于数据的快速读写和初步处理。

1.3 xlrd/xlwt(较老但仍有使用场景)

        xlrd 用于读取 Excel 文件(支持 .xls 格式),xlwt 用于写入 Excel 文件(同样支持 .xls 格式)。由于它们对 .xlsx 格式支持有限,在新项目中使用频率逐渐降低,但在处理老旧格式的 Excel 文件时仍有一定价值。


2 实战案例:销售数据自动化处理

2.1 案例背景

        假设我们有一份某公司某月的销售数据 Excel 文件(sales_data.xlsx),包含销售日期、产品名称、销售数量、销售单价等信息。我们的任务是自动化完成以下工作:

  1. 读取 Excel 文件中的数据。
  2. 计算每笔订单的销售金额(销售数量×销售单价)。
  3. 统计每种产品的总销售金额。
  4. 将处理后的数据保存到新的 Excel 文件中,并对总销售金额进行降序排序。

2.2 代码实现

1. 准备工作

        首先,确保已安装所需库,可通过以下命令安装:

pip install openpyxl pandas

2. 完整代码

import pandas as pd
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, Alignmentdef process_sales_data():# 1. 读取Excel文件input_file = 'sales_data.xlsx'df = pd.read_excel(input_file)# 2. 计算每笔订单的销售金额df['销售金额'] = df['销售数量'] * df['销售单价']# 3. 统计每种产品的总销售金额product_sales = df.groupby('产品名称')['销售金额'].sum().reset_index()product_sales = product_sales.sort_values(by='销售金额', ascending=False)# 4. 将处理后的数据保存到新的Excel文件output_file = 'processed_sales_data.xlsx'with pd.ExcelWriter(output_file, engine='openpyxl') as writer:# 写入原始数据(带计算的销售金额)df.to_excel(writer, sheet_name='原始数据', index=False)# 写入产品总销售金额统计结果product_sales.to_excel(writer, sheet_name='产品统计', index=False)# 5. 使用openpyxl对输出的Excel文件进行格式美化(可选)wb = load_workbook(output_file)# 美化“原始数据”工作表ws_raw = wb['原始数据']# 设置标题行字体加粗、居中for cell in ws_raw[1]:cell.font = Font(bold=True)cell.alignment = Alignment(horizontal='center')# 美化“产品统计”工作表ws_stats = wb['产品统计']# 设置标题行字体加粗、居中for cell in ws_stats[1]:cell.font = Font(bold=True)cell.alignment = Alignment(horizontal='center')# 为总销售金额列添加货币格式(示例,实际可能需要根据Excel版本调整)for row in range(2, ws_stats.max_row + 1):ws_stats.cell(row=row, column=2).number_format = '"¥"#,##0.00'# 保存美化后的文件wb.save(output_file)print(f"数据处理完成,结果已保存到 {output_file}")if __name__ == '__main__':process_sales_data()

代码解析:

  1. 数据读取:使用 pandas.read_excel() 函数读取 sales_data.xlsx 文件中的数据到 DataFrame 对象 df 中。
  2. 计算销售金额:通过 DataFrame 的列运算,直接在 df 中新增一列“销售金额”,其值为“销售数量”与“销售单价”的乘积。
  3. 统计产品总销售金额:利用 groupby() 方法按“产品名称”分组,然后对“销售金额”列求和,并使用 sort_values() 方法按总销售金额降序排序。
  4. 数据写入:使用 pandas.ExcelWriter 将处理后的数据分别写入新 Excel 文件的不同工作表中。
  5. 格式美化:使用 openpyxl 加载生成的 Excel 文件,对工作表进行格式设置,如设置标题行字体加粗、居中,为金额列添加货币格式等,使输出结果更加美观易读。

3 扩展应用场景

3.1 批量处理多个 Excel 文件

        假设公司有多个销售分公司的 Excel 数据文件,文件命名格式为分公司名称 _sales_data.xlsx,我们可以编写代码批量处理这些文件,并将结果合并到一个 Excel 文件中。

import os
import pandas as pddef batch_process_sales_files():input_folder = 'sales_files'  # 假设所有分公司销售数据文件都在此文件夹中output_file = 'all_companies_sales_summary.xlsx'all_data = []# 遍历文件夹中的所有Excel文件for filename in os.listdir(input_folder):if filename.endswith('_sales_data.xlsx'):company_name = filename.split('_')[0]  # 提取分公司名称file_path = os.path.join(input_folder, filename)df = pd.read_excel(file_path)df['分公司'] = company_name  # 添加分公司列all_data.append(df)# 合并所有数据combined_df = pd.concat(all_data, ignore_index=True)# 计算每笔订单销售金额combined_df['销售金额'] = combined_df['销售数量'] * combined_df['销售单价']# 统计各分公司各产品总销售金额company_product_sales = combined_df.groupby(['分公司', '产品名称'])['销售金额'].sum().reset_index()company_product_sales = company_product_sales.sort_values(by=['分公司', '销售金额'], ascending=[True, False])# 保存结果with pd.ExcelWriter(output_file, engine='openpyxl') as writer:combined_df.to_excel(writer, sheet_name='原始合并数据', index=False)company_product_sales.to_excel(writer, sheet_name='分公司产品统计', index=False)print(f"批量处理完成,结果已保存到 {output_file}")if __name__ == '__main__':batch_process_sales_files()

3.2 定时自动生成报表

        在办公场景里,日报、周报、月报的生成与分发如同每日打卡,是不可或缺的工作环节。但手动重复操作不仅耗时,还容易因忙碌而遗漏。借助操作系统的定时任务功能与 Python 脚本,我们能让报表在指定时间自动“出炉”,并精准送达相关人员手中,大幅提升办公效率。

3.2.1 定时任务工具选择

        不同操作系统提供了各具特色的定时任务工具,能无缝衔接 Python 脚本,实现自动化报表生成。

  • Windows:“任务计划程序”是 Windows 系统的内置利器,通过直观的图形界面,可轻松设置脚本的定时运行。
  • Linux/Mac:cron 服务以简洁高效的命令行方式,灵活管理定时任务,满足多样化的定时需求。

3.2.2 典型应用场景:销售日报自动生成与发送

        假设公司要求每天早上 9 点,将前一天的销售数据汇总成日报,并发送给销售团队和管理层。下面介绍如何借助 Python 脚本与定时任务工具实现这一需求。

import pandas as pd
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from datetime import datetime, timedeltadef generate_and_send_daily_report():# 1. 获取前一天日期yesterday = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d')# 2. 模拟生成销售数据(实际项目中可连接数据库获取)data = {'产品名称': ['产品A', '产品B', '产品C'],'销售数量': [120, 85, 95],'销售单价': [50, 80, 60]}df = pd.DataFrame(data)df['销售金额'] = df['销售数量'] * df['销售单价']# 3. 计算总销售额total_sales = df['销售金额'].sum()# 4. 保存报表到Excelreport_filename = f'daily_sales_report_{yesterday}.xlsx'with pd.ExcelWriter(report_filename, engine='openpyxl') as writer:df.to_excel(writer, sheet_name='销售明细', index=False)# 添加总销售额到新工作表summary_df = pd.DataFrame({'统计项': ['总销售额'], '金额': [total_sales]})summary_df.to_excel(writer, sheet_name='统计汇总', index=False)# 5. 发送邮件send_email(report_filename, yesterday)def send_email(file_path, report_date):# 邮件配置sender = 'your_email@example.com'  # 发送者邮箱password = 'your_password_or_app_token'  # 邮箱密码或应用专用密码/授权码receiver = 'sales_team@example.com'  # 接收者邮箱smtp_server = 'smtp.example.com'  # SMTP服务器地址(如Gmail为smtp.gmail.com)smtp_port = 587  # SMTP服务器端口# 创建邮件对象msg = MIMEMultipart()msg['From'] = sendermsg['To'] = receivermsg['Subject'] = f'{report_date}销售日报'# 邮件正文body = f"""<h2>各位同事:</h2><p>以下是{report_date}的销售日报,请查收。</p><p>附件包含详细的销售明细和统计汇总信息。</p><br><p>销售部</p><p>{datetime.now().strftime('%Y-%m-%d')}</p>"""msg.attach(MIMEText(body, 'html'))# 添加附件with open(file_path, 'rb') as f:part = MIMEApplication(f.read())part.add_header('Content-Disposition', 'attachment', filename=file_path)msg.attach(part)# 发送邮件try:with smtplib.SMTP(smtp_server, smtp_port) as server:server.starttls()  # 启用加密连接server.login(sender, password)server.send_message(msg)print(f"邮件发送成功,报表已发送至 {receiver}")except Exception as e:print(f"邮件发送失败: {e}")if __name__ == '__main__':generate_and_send_daily_report()

脚本功能解析:

  • 数据生成:模拟生成前一天的销售数据,包括产品名称、销售数量、销售单价,并计算销售金额和总销售额。
  • 报表生成:使用 pandas 将数据保存到 Excel 文件中,创建“销售明细”和“统计汇总”两个工作表,分别展示详细销售数据和总销售额。
  • 邮件发送:通过 smtplib 和 email 库构建并发送邮件,将生成的 Excel 文件作为附件发送给指定人员。

3.2.3 定时任务设置

Windows 系统:

  1. 打开任务计划程序:按下 Win + R 键,输入 taskschd.msc 并回车。
  2. 创建基本任务:在右侧操作面板中点击“创建基本任务”。
  3. 填写基本信息:输入任务名称(如“每日销售日报发送”)和描述。
  4. 设置触发器:选择“每天”,设置开始时间为 9:00,并选择“每天”重复执行。
  5. 设置操作:选择“启动程序”,浏览并选择 Python 解释器路径(如 C:\Python39\python.exe)和脚本路径(如 C:\scripts\generate_and_send_daily_report.py)。
  6. 完成设置:点击“完成”按钮,任务计划程序将每天 9 点自动运行脚本。

Linux/Mac 系统

        编辑 crontab 文件:在终端输入 crontab -e 命令。

        添加定时任务:在打开的编辑器中添加以下行,设置每天 9 点运行脚本:

0 9 * * * /usr/bin/python3 /path/to/generate_and_send_daily_report.py
  • 0 9 * * *:表示每天 9:00 执行任务。
  • /usr/bin/python3:Python 解释器的路径,可通过 which python3 命令查找。
  • /path/to/generate_and_send_daily_report.py:Python 脚本的绝对路径。

        保存并退出:保存文件后,cron 服务将自动加载新的定时任务。

3.2.4 注意事项

  • 邮箱安全:为保障邮箱安全,建议使用应用专用密码或授权码进行 SMTP 登录,而非直接使用邮箱密码。
  • 路径问题:在脚本中使用绝对路径引用文件,避免因工作目录不同而导致文件找不到。
  • 日志记录:在脚本中添加日志记录功能,将脚本的运行情况和错误信息记录到日志文件中,方便排查问题。例如,使用 logging 模块记录日志:
import logging# 配置日志记录
logging.basicConfig(filename='report_generation.log', level=logging.INFO,format='%(asctime)s - %(levelname)s - %(message)s')def generate_and_send_daily_report():try:logging.info("开始生成销售日报")# 原有代码...logging.info("销售日报生成并发送成功")except Exception as e:logging.error(f"生成销售日报时出错: {e}")

        通过以上方法,我们可以轻松实现销售日报的定时自动生成与发送,让办公自动化为我们的工作减负增效。同样的思路也可应用于周报、月报等其他报表的定时生成与分发。

相关文章:

Python 自动化办公:Excel 数据处理的“秘密武器”

引言 在日常的 IT 办公场景里&#xff0c;Excel 是数据处理与分析的 “常胜将军”。无论是财务人员整理账目、销售团队统计业绩&#xff0c;还是运营人员分析用户数据&#xff0c;Excel 都发挥着关键作用。但面对海量数据&#xff0c;手动操作 Excel 不仅效率低下&#xff0c;还…...

通过数据增强打造抗噪音多模态大模型

下载前面 想象一下,你正在一个嘈杂的咖啡馆里,想让身边的AI助手帮你预定一张电影票。或者,你在熙熙攘攘的街道上,需要语音导航带你找到目的地。在这些真实的场景中,语音交互面临着一个巨大的挑战——噪音。 背景噪音、他人说话声、设备本身的电流声……这些无处不在的干…...

Node.js API 安全的主要策略:最佳实践

了解 Node.js API 安全性 保护 Node.js API 的安全需要了解潜在的漏洞并采取措施来缓解这些漏洞。这类 API 通常遇到的常见威胁包括: SQL 注入**:**操纵用户输入以针对数据库执行恶意 SQL 代码。跨站点脚本**(XSS):**将恶意脚本注入其他用户查看的网页。跨站请求伪造**(CSR…...

如何删除Google Chrome中的所有历史记录【一键清除】

谷歌浏览器记录了用户访问过的网站。这方便了查找&#xff0c;但有时也需要清理。删除所有历史记录很简单&#xff0c;只要按照以下步骤操作。 1. 打开谷歌浏览器 首先要启动谷歌浏览器。点击右上角的三个点&#xff0c;进入主菜单。 2. 进入历史记录界面 在菜单中找到“历史…...

计算机三大主流操作系统的前世今生 - Linux|macOS|Windows

全文目录 1 引言2 起源之路2.1 Linux 起源2.2 macOS 起源2.3 Windows 起源 3 综合解析3.1 Linux系统综合解析3.1.1 系统定义与核心架构3.1.2 发展历程3.1.3 核心特点3.1.4 主流发行版3.1.5 应用场景 3.2 macOS系统综合解析3.2.1 系统定义与核心架构3.2.2 发展历程3.2.3 核心特点…...

大数据学习栈记——Hive4.0.1安装

本文介绍大数据技术中数据仓库Hive的安装配置&#xff0c;版本&#xff1a;Hive4.0.1&#xff0c;Ubuntu24.04。 Hive简介 Hive由 Facebook 开源用于解决海量结构化日志的数据统计工具。 Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据…...

8.Excel:数据验证和下拉列表

一 数据验证 1.作用 限制用户输入单元格的值。 补充&#xff1a;数据验证要先设置验证才会起作用&#xff0c;对于已经填写完成的表格来说&#xff0c;可以快速找到不符合的数值。 选中整列&#xff0c;然后设置数据验证。 然后圈释无效数据&#xff0c;不符合的会被圈出来 2.如…...

【机器学习-线性回归-4】线性回归中的最优解:从数学原理到实践应用

在机器学习的世界里&#xff0c;线性回归就像是一把瑞士军刀——简单却功能强大。无论是预测房价、分析销售趋势&#xff0c;还是研究变量间的相关性&#xff0c;线性回归都是数据科学家首选的入门算法。但你是否曾好奇过&#xff0c;这个看似简单的算法背后&#xff0c;是如何…...

《代码整洁之道》全书归纳

如果要把这本书最关键、最核心、被反复提及和强调的重点提炼出来&#xff0c;那就是&#xff1a; 可读性高于一切&#xff1a; 你的代码是给人读的&#xff0c;让它像一篇清晰的文章一样易于理解。表达意图是关键。短小、单一&#xff1a; 函数要短小&#xff0c;类要短小&…...

项目代码生成工具

代码生成工具 文章目录 代码生成工具提取公共类domainbodtoentityvoBean基类 代码生成工厂连接配置模版1、基础类基类Entity添加DTO类分页查询DTO基础查询DTO修改DTO视图VO 2、controller2、service接口3、service实现类4、Mapper接口5、Mapper的xml文件 提取公共类 比方说每个…...

【机器学习驱动的智能化电池管理技术与应用】

在人工智能与电池管理技术融合的背景下&#xff0c;电池科技的研究和应用正迅速发展&#xff0c;创新解决方案层出不穷。从电池性能的精确评估到复杂电池系统的智能监控&#xff0c;从数据驱动的故障诊断到电池寿命的预测优化&#xff0c;人工智能技术正以其强大的数据处理能力…...

【MySQL 】MySQL 安装自记录全程-详细 (mysql-installer-community-8.0.42.0.msi)

看了一些别人的文章&#xff0c;其实还有些困惑&#xff0c;根据不少都有一些跟我遇到的不太一样&#xff0c;记录一下自己的安装过程 MySQL 安装&#xff08;Windows&#xff09; 下载 MySQL 安装包 MySQL数据库官网链接 MySQL &#xff08;MySQL的https://www.mysql.com/ …...

构建事件驱动的云原生后端系统 —— 从设计到实践

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:为什么需要事件驱动架构? 在现代互联网应用中,系统规模越来越大,功能模块越来越复杂,用户行为越来越不可预测。 传统的同步调用、强耦合的后端架构,面对大规模并发、高频变化、复杂交…...

时间复杂度和空间复杂度 [数据结构 初阶]

目录 算法效率 1. 时间复杂度 1.1 时间复杂度概念 1.2 大O 的渐进表示法 1.2.1 计算 func1 的基本操作执行了多少次 1.3 推导 大O 阶方法 2. 空间复杂度 算法效率 // 算法效率分析分为两种: 1) 时间效率: 时间复杂度, 用来衡量一个算法的运行速度; 2) 空间效率: 空间复…...

SpringMVC 通过ajax 前后端数据交互

在前端的开发过程中&#xff0c;经常在html页面通过ajax进行前后端数据的交互&#xff0c;SpringMVC的controller进行数据的接收&#xff0c;但是有的时候后端会出现数据无法接收到的情况&#xff0c;这个是因为我们的参数和前端ajax的contentType参数 类型不对应的情景&#x…...

Qt从零开始(1)了解

文章目录 1. Qt技术介绍2. 开发GUI的选择3. 框架的介绍4.Qt发展历程&#xff08;简单介绍&#xff09;5. Qt支持的系统6. Qt开发方式7.Qt优点总结 简介&#xff1a;这篇文章简单介绍下Qt的相关知识与应用场景&#xff0c;随便看看&#xff0c;了解了解即可。如果介绍有误或者描…...

当元数据遇见 AI 运维:智能诊断企业数据资产健康度

在数字化浪潮席卷全球的当下&#xff0c;企业数据资产规模呈指数级增长&#xff0c;然而传统数据监控方式却逐渐暴露出诸多弊端。想象一下&#xff0c;在某头部电商的晨会上&#xff0c;数据工程师小王正经历职业生涯最尴尬的时刻&#xff1a;“昨天促销活动的 UV 数据为什么比…...

关于OCP认证:有Oracle和MySQL两种

认证针对的数据库系统 MySQL OCP&#xff1a;是 Oracle 公司针对 MySQL 数据库管理员和开发者设计的认证&#xff0c;主要验证持证者在 MySQL 数据库管理、优化及安全等方面的技术能力。MySQL 是开源的关系数据库管理系统&#xff0c;以其简单、高性能和灵活性在中小型企业及开…...

Macos m系列芯片环境下python3安装mysqlclient系列问题

最近学习python3&#xff0c;在安装mysqlclient的时候遇到了一些问题&#xff0c;直接使用哦pip install mysqlclient 直接报错了&#xff0c;记录一下解决方案。 环境信息 设备&#xff1a;Macbook Pro m1 系统&#xff1a;macos Sequoia 15.3.2 最终成功的python版本&#xf…...

《代码整洁之道》第7章 错误处理 - 笔记

得墨忒耳定律 不要链式调用&#xff0c; 如 a.getB().getC().doSomething()。 直接获取对象调用方法 数据传输对象&#xff08;DTOs&#xff09; DTO (Data Transfer Object)&#xff1a; 数据传输对象。这是一种典型的数据结构。 里面没有任何业务逻辑代码。它的唯一作用就…...

java-mybatis01

对象/关系映射ORM ORM完成面向对象的编程语言DAO关系数据库的映射后&#xff0c;开发人员可以利用面向对象设计语言的建议易用性&#xff0c;也可利用关系数据库的技术优势。 ORM把关系数据库包装成面向对象的模型&#xff0c;采用ORM框架后&#xff0c;应用程序不再直接访问底…...

单片机之间的双向通信

具体功能实现 甲单片机通过按键可以控制乙单片机的LED灯&#xff0c;而乙单片机通过可以让连接甲单片机的数码管数字自增加一。 定时器资源 3个定时器 中断系统 执行现程序的过程中&#xff0c;出现某些急需处理的异常情况或特殊请求&#xff0c;cpu暂时中止现行程序&…...

量子纠缠式架构:当微服务同时存在于所有节点时,CAP定理是否依然成立?

一、CAP定理的经典困境 1. 传统分布式系统的三维束缚 经典权衡案例&#xff1a; 系统类型选择代价银行核心系统CP故障时拒绝服务社交网络AP短暂数据不一致物联网平台CA网络中断即崩溃 二、量子纠缠的降维打击 1. 量子微服务的超距同步 # 量子纠缠服务示例&#xff08;Qiski…...

使用rsync和inotidy-tools来进行实时备份文件夹数据

在工作中遇到这个这么个需求&#xff0c;就是我们有一个samba的文件共享服务器&#xff0c;里面存了很多文件&#xff0c;然后我想实时备份这个samba共享文件的。 1、概述 只需要在源服务器上操作&#xff0c;并在源服务器上安装好rsync和inotidy-tools&#xff0c;目标服务器…...

Spring AI 实现智能对话

1. 实现效果 2. Spring Boot 3 后端 2.1 pom.xml <!-- 管理包依赖。通过 Spring AI 的 BOM 文件统一管理所有 Spring AI 相关依赖的版本&#xff0c;确保版本一致性&#xff0c;减少冲突 --><dependencyManagement><dependencies><!-- Spring AI -->…...

2025 网络安全技术深水区探索:从 “攻防对抗” 到 “数字韧性” 的范式跃迁

引言&#xff1a;当攻击成本趋近于零&#xff0c;防御逻辑必须重构 2025 年&#xff0c;网络安全领域正经历三重根本性变革&#xff1a; 攻击者门槛坍缩&#xff1a;生成式 AI 将网络钓鱼开发效率提升 300%&#xff0c;勒索软件即服务&#xff08;RaaS&#xff09;订阅用户突破…...

学习笔记—双指针算法—移动零

双指针算法 移动零 283. 移动零 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进…...

计算机网络全栈精讲:从 TCP/UDP 原理到 Socket 编程与 HTTP 协议实战(含代码实现)

计算机网络作为现代信息技术的基石&#xff0c;支撑着互联网、物联网、云计算等众多领域的发展。无论是前端开发者、后端工程师&#xff0c;还是运维人员&#xff0c;深入理解计算机网络原理都至关重要。本文将从网络分层模型出发&#xff0c;逐步深入讲解 TCP/UDP 协议、Socke…...

IP地址如何切换到国内别的省份?一步步指导

使用换IP工具的主要目的是通过更换设备的公网IP地址来满足特定需求&#xff0c;例如绕过限制、保护隐私或完成特定任务。以下是常见的应用场景和原因&#xff1a; 一、ip应用场景 1. 绕过IP限制 访问地域限制内容&#xff1a;某些网站或服务&#xff08;如游戏、社交平台 &am…...

c++流对象

核心概念回顾&#xff1a; C 的流库 (<iostream>, <fstream>, <sstream>) 提供了一种统一的方式来处理输入和输出&#xff0c;无论数据是来自键盘、文件还是内存中的字符串。它们都基于 std::istream (输入流基类) 和 std::ostream (输出流基类)&#xff0c…...

华为IP(5)

交换机的堆叠与集群 堆叠和集群指的是同一件事 前言: 随着企业的发展&#xff0c;企业网络的规模越来越大&#xff0c;这对企业网络提出了更高的要求&#xff1a;更高的可靠性、更低的故障恢复时间、设备更加易于管理等。 传统的园区网高可靠性技术出现故障时很难做到毫秒级…...

零信任架构下的等保 2.0 与密评密改双合规

随着《网络安全等级保护2.0》和《商用密码应用安全性评估》的深入实施&#xff0c;企业面临双重合规压力&#xff1a;既要满足等保2.0对“主动防御”和“动态防护”的要求&#xff0c;又要通过密评密改强化密码技术的合规性。传统安全架构依赖边界防护和静态密码策略&#xff0…...

华为 MRAG:多模态检索增强生成技术论文阅读

GitHub项目链接&#xff1a;https://github.com/PanguIR/MRAGSurvey 总览 多模态检索增强生成&#xff08;MRAG&#xff09;通过将文本、图像、视频等多模态数据整合到检索与生成过程中&#xff0c;显著提升了多模态大语言模型&#xff08;MLLM&#xff09;的性能。传统检索增…...

文字光影扫过动效

列子1 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>光影扫过文字动效</title><styl…...

SpringBoot配置RestTemplate并理解单例模式详解

在日常开发中&#xff0c;RestTemplate 是一个非常常用的工具&#xff0c;用来发起HTTP请求。今天我们通过一个小例子&#xff0c;不仅学习如何在SpringBoot中配置RestTemplate&#xff0c;还会深入理解单例模式在Spring中的实际应用。 1. 示例代码 我们首先来看一个基础的配置…...

计算机网络应用层(5)-- P2P文件分发视频流和内容分发网

&#x1f493;个人主页&#xff1a;mooridy &#x1f493;专栏地址&#xff1a;《计算机网络&#xff1a;自顶向下方法》 大纲式阅读笔记_mooridy的博客-CSDN博客 &#x1f493;本博客内容为《计算机网络&#xff1a;自顶向下方法》第二章应用层第五、六节知识梳理 关注我&…...

C++ TCP通信原理与实现

C 中 TCP 通信的原理基于 TCP/IP 协议栈的实现&#xff0c;以下是核心原理和关键步骤的详细说明&#xff1a; 一、TCP 通信核心原理 面向连接 通信双方需通过 三次握手 建立可靠连接&#xff0c;确保通信通道稳定。通过 四次挥手 断开连接&#xff0c;保证数据完整性。 可靠传…...

计算机网络-运输层(1)

计算机网络-运输层(1) 文章目录 计算机网络-运输层(1)5.1 运输层概述5.2 运输层端口号、复用与分用端口号基本概念端口号特性端口号分类重要说明 5.3 UDP与TCP协议对比关键区别说明 5.1 运输层概述 计算机网络体系结构中的物理层、数据链路层以及网络层共同解决了主机通过异构…...

学习spark-streaming收获

1.流处理的核心概念 •实时 vs微批处理&#xff1a;理解了 Spark Streaming 的微批处理&#xff08;Micro-Batch&#xff09;模型&#xff0c;将流数据切分为小批次&#xff08;如1秒间隔&#xff09;进行处理&#xff0c;与真正的流处理&#xff08;如Flink&#xff09;的区…...

蓝桥杯 14. 奇怪的数列

奇怪的数列 原题目链接 题目描述 从 X 星截获一份电码&#xff0c;是一些数字&#xff0c;如下&#xff1a; 13 1113 3113 132113 1113122113 ⋯⋯YY 博士经彻夜研究&#xff0c;发现了规律&#xff1a; 第一行的数字随便是什么&#xff0c;以后每一行都是对上一行 “读出…...

前端高频面试题day2

如何在vue3中使用defineAsyncComponent实现异步组件加载 在 Vue 3 中&#xff0c;使用 defineAsyncComponent 实现异步组件加载的步骤如下&#xff1a; 引入方法&#xff1a;从 Vue 中导入 defineAsyncComponent。定义异步组件&#xff1a;通过 defineAsyncComponent 包装一个…...

Linux系统之设置开机启动运行桌面环境

Linux 开机运行级别介绍与 Ubuntu 桌面环境配置指南 一、Linux 开机运行级别(Runlevel) 在传统的 Linux 系统(如 SysV init 初始化系统)中,运行级别定义了系统启动时加载的服务和资源。常见的运行级别如下: 运行级别模式用途0Halt(停机模式)关闭系统1Single User Mode…...

Python PyAutoGUI库【GUI 自动化库】深度解析与实战指南

一、核心工作原理 底层驱动机制&#xff1a; 通过操作系统原生API模拟输入使用ctypes库调用Windows API/Mac Cocoa/Xlib屏幕操作依赖Pillow库进行图像处理 事件模拟流程&#xff1a; #mermaid-svg-1CGDRNzFNEffhvSa {font-family:"trebuchet ms",verdana,arial,sans…...

【MobaXterm】win10下载v25.1安装流程

【下载地址】 官网&#xff1a; https://mobaxterm.mobatek.net/ 下载安装版&#xff0c;解压使用更快一些 【v20.0中文安装包】 夸克网盘&#xff1a;https://pan.quark.cn/s/2ad5b59e6d8e#/list/share 对应的指导教程&#xff1a; MobaXterm中文版安装使用教程-附安装包…...

2025.4.22 JavaScript 常用事件学习笔记

一、事件概述 JavaScript 事件是指在用户与网页交互或网页状态发生变化时所触发的操作。通过使用事件&#xff0c;可以为网页添加丰富的动态功能&#xff0c;实现用户与页面之间的互动&#xff0c;让网页不再只是静态的展示内容。 二、常见鼠标事件 click 事件 简介 &#xf…...

Android 13.0 MTK Camera2 设置默认拍照尺寸功能实现

Android 13.0 MTK Camera2 设置默认拍照尺寸功能实现 文章目录 需求&#xff1a;参考资料架构图了解Camera相关专栏零散知识了解部分相机源码参考&#xff0c;学习API使用&#xff0c;梳理流程&#xff0c;偏应用层Camera2 系统相关 修改文件-修改方案修改文件&#xff1a;修改…...

Linux:基础IO 文件系统

Linux:基础IO && 文件系统 一、系统IO&#xff08;一&#xff09;系统文件操作接口1、open2、write3、read &#xff08;二&#xff09;文件描述符1、概念2、标准输入、标准输出、标准错误 &#xff08;三&#xff09;dup系统调用&#xff08;重定向原理&#xff09; 二…...

近期有哪些断链危机?如何提升供应链风险管理能力?

全球供应链格局正经历深刻变革&#xff0c;其网络架构愈发复杂&#xff0c;涉及多国企业主体且涵盖多个节点与复杂环节&#xff0c;管理难度显著增大。从原材料采购到终端交付&#xff0c;运输、仓储、加工等任一环节均存在潜在风险&#xff0c;单一环节效率滞后易引发系统性连…...

知识科普|褪黑素的发展历程及应用研究进展

睡眠作为维持人体健康的重要生理机制&#xff0c;其节律性受到精密调控。在昼夜节律系统的调控下&#xff0c;人类普遍遵循周期性单次睡眠模式&#xff0c;这一过程涉及复杂的神经-体液调控网络。其中神经元活动、神经递质传导、激素分泌及遗传调控机制共同作用于睡眠觉醒系统&…...

企业如何构建一个全面的Web安全防护体系

企业如何构建一个全面的Web安全防护体系 企业构建全面的Web安全防护体系需融合战略规划、技术防御、持续运营和风险治理四大维度&#xff0c;以下是基于行业最佳实践的系统化方案&#xff1a; 一、顶层设计&#xff1a;治理架构与安全战略 战略规划与合规驱动 制定网络安全愿…...