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

Python的sys模块:系统交互的关键纽带

Python的sys模块:系统交互的关键纽带

图片

对话实录

小白:(挠头)我知道 Python 能做很多事,可怎么让它和计算机系统‘交流’呢,比如获取系统信息、处理命令行参数?

专家:(微笑)这就得靠sys模块啦!它就像一座桥梁,连接着你的 Python 程序和底层操作系统,功能超强大,接下来为你详细介绍!

sys模块基础认知

1. 获取系统信息

sys模块的version属性可以获取当前 Python解释器的版本信息。

import sys
print("Python版本:", sys.version)  
print("系统平台:", sys.platform)  # 输出如:win32/linux/darwin
print("默认编码:", sys.getdefaultencoding())
#输出为:
Python版本: 3.10.10 (v3.10.10:aad5f6a891, Feb  7 2023, 08:47:40) [Clang 13.0.0 (clang-1300.0.29.30)]
系统平台: darwin
默认编码: utf-8# 检查Python版本
print(sys.version_info)
if sys.version_info < (3, 11):sys.exit("需要Python3.11及以上版本!")
#输出为:
sys.version_info(major=3, minor=10, micro=10, releaselevel='final', serial=0)
需要Python3.11及以上版本!

2. 访问命令行参数

在运行 Python 脚本时,经常需要传递一些参数。sys.argv列表就用于存储命令行参数,其中sys.argv[0]是脚本名称,后续元素是传递的参数。例如,创建一个test.py脚本:

import sys
print(f"脚本名称: {sys.argv[0]}")
if len(sys.argv) > 1:print(f"传递的参数: {sys.argv[1:]}")
else:sys.exit(1)  # 非0退出码表示异常退出

在命令行中运行python test.py arg1 arg2,你会看到输出脚本名称: test.py以及传递的参数: ['arg1', 'arg2'],这在编写需要灵活配置的脚本时极为实用,比如批量处理文件的脚本,可通过命令行参数指定要处理的文件路径。

3.快速退出程序

sys.exit("直接退出并输出错误信息")  # 自动退出码为1

4.查看引用计数

obj = [1,2,3,4,5]
obj_1 = obj
print("引用计数:", sys.getrefcount(obj))  
#输出为:
引用计数: 3    #结果会比实际多1(临时引用)

5. 内存使用情况查看

sys.getsizeof()函数可以获取对象占用的内存大小(以字节为单位)。例如,查看一个列表占用的内存:

import sys
my_list = [1, 2, 3, 4, 5]
memory_size = sys.getsizeof(my_list)
print(f"列表占用内存: {memory_size} 字节")
#输出为:
列表占用内存: 104 字节memory_size = [i**2 for i in range(10000)]
print(f"内存占用:{sys.getsizeof(memory_size)} 字节") 
#输出为:
内存占用:85176 字节

在优化程序内存使用,尤其是处理大量数据时,通过该函数了解对象内存占用,有助于发现内存使用不合理的地方。

6. 动态添加模块搜索路径

sys.path是一个列表,包含了 Python 解释器查找模块的路径。在某些情况下,需要动态添加自定义模块路径。比如,有一个位于/home/user/custom_modules目录下的模块,想在当前脚本中使用:

import sys
sys.path.append('/home/user/custom_modules')
# 现在可以导入该目录下的模块了
try:import custom_module
except ImportError:print("无法导入自定义模块")

常用功能及案例

案例 1:退出程序

sys.exit()函数可用于终止程序运行。比如在一个简单的用户登录验证程序中,当用户输入错误密码次数超过限制时,可使用sys.exit()结束程序。

import sys
max_attempts = 3
attempts = 0
while attempts < max_attempts:password = input("请输入密码: ")if password == "correct_password":print("登录成功!")breakelse:attempts += 1print(f"密码错误,剩余尝试次数: {max_attempts - attempts}")
if attempts == max_attempts:print("超过最大尝试次数,程序退出。")sys.exit()

通过这种方式,能有效控制程序流程,在满足特定条件时及时结束程序。

案例 2:标准输入输出重定向

sys.stdin、sys.stdout和sys.stderr分别代表标准输入、标准输出和标准错误输出流。我们可以重定向这些流,改变程序输入输出的方向。例如,将原本输出到控制台的内容重定向到一个文件中:

import sys
original_stdout = sys.stdout
with open('output.txt', 'w', encoding='utf - 8') as file:sys.stdout = fileprint("这行内容将输出到文件中")
sys.stdout = original_stdout
print("这行内容又回到控制台输出")

在with语句块内,所有print语句的输出都被重定向到output.txt文件,之后恢复sys.stdout,输出又回到控制台,在日志记录、数据批量处理等场景中很有用。

案例 3:获取系统平台信息

sys.platform属性可以获取当前运行 Python 的系统平台信息。

import sys
platform_info = sys.platform
if platform_info.startswith('win'):print("当前运行在Windows系统")
elif platform_info.startswith('linux'):print("当前运行在Linux系统")
elif platform_info == 'darwin':print("当前运行在macOS系统")
else:print(f"未知系统平台: {platform_info}")

这在编写跨平台代码时,根据不同系统进行差异化处理非常关键,比如在 Windows 系统下调用特定的系统命令,在 Linux 系统下则使用另一套命令。

案例 4:获取系统最大递归深度

sys.getrecursionlimit()函数用于获取 Python 解释器当前设置的最大递归深度。这在排查递归函数相关问题时很有帮助,比如当一个递归函数出现RecursionError: maximum recursion depth exceeded错误时,可通过此函数先查看当前限制。

import sys
print(f"当前系统最大递归深度: {sys.getrecursionlimit()}")
sys.setrecursionlimit(500)  #调整深度
print(f"当前系统最大递归深度: {sys.getrecursionlimit()}")
#输出为:
当前系统最大递归深度: 1000
当前系统最大递归深度: 500

默认情况下,Python设置该值是为了防止程序因无限递归而耗尽系统资源,若要调整,可使用sys.setrecursionlimit()函数。

案例 5:进度条功能

def progress_bar(current, total):percent = current / totalbar = '█' * int(30 * percent)sys.stdout.write(f"\r[{bar.ljust(30)}] {percent:.1%}")sys.stdout.flush()# 使用示例
for i in range(101):progress_bar(i, 100)time.sleep(0.05)

案例 6:获取系统字节序

sys.byteorder属性返回一个字符串,指示系统的字节序。字节序决定了多字节数据类型(如整数)在内存中的存储顺序。常见的字节序有'big'(大端序)和'little'(小端序)。在网络编程、处理二进制文件等涉及数据在不同系统间传输或存储的场景中,了解字节序至关重要。

import sys
byte_order = sys.byteorder
print(f"当前系统字节序: {byte_order}")
#输出为:
当前系统字节序: little

例如,在通过网络发送整数数据时,不同字节序的系统需要进行相应的转换,以确保数据被正确

闭坑指南

命令行参数类型问题

sys.argv获取的参数都是字符串类型,如果需要进行数值计算或其他类型操作,需要手动转换类型。例如:

import sys
# 错误示范,直接对字符串进行加法运算会报错
# result = sys.argv[1] + sys.argv[2]
# 正确做法,先转换为数字类型
try:num1 = int(sys.argv[1])num2 = int(sys.argv[2])result = num1 + num2print(f"计算结果: {result}")
except IndexError:print("请提供两个数字参数")
except ValueError:print("参数必须为数字")

运行脚本时输入python script.py 3 5,可得到正确计算结果,若输入非数字参数或参数数量不足,程序也能给出合理提示。

重定向流未正确恢复

在重定向标准输入输出流后,一定要记得恢复原状,否则后续程序输出可能出现异常。比如:

import sys
original_stdout = sys.stdout
sys.stdout = open('output.txt', 'w', encoding='utf - 8')
print("输出到文件")
# 错误示范,未恢复sys.stdout
# 后续的print语句都会输出到文件,而非控制台
print("这行本应在控制台输出")

正确做法是在完成文件输出操作后,将sys.stdout恢复为原始值,即sys.stdout = original_stdout。

错误使用sys.exit

sys.exit()函数可以接收一个整数参数,该参数作为程序退出状态码返回给操作系统。如果使用不当,可能导致程序调试和排查问题困难。例如,随意使用非零状态码(一般零表示程序正常结束),可能误导后续依赖该程序执行结果的其他程序或脚本。通常应在程序出现错误时返回非零状态码,正常结束时返回 0 。

import sys
try:# 模拟一些可能出错的操作result = 1 / 0
except ZeroDivisionError:print("出现除零错误,程序退出")sys.exit(1) # 非零状态码表示程序异常结束
else:print("程序正常结束")sys.exit(0) # 零状态码表示程序正常

小白:(恍然大悟)原来sys模块有这么多实用功能,能让 Python 和系统配合得这么好!

专家:(点头)没错,熟练掌握sys模块,你在编写系统相关 Python 程序时将更加游刃有余,快去实践吧!

常用函数及属性速查表

函数 / 属性

用法

说明

sys.version

sys.version

获取 Python 版本信息

sys.argv

sys.argv

存储命令行参数的列表

sys.exit

sys.exit([status])

退出程序,status 为退出状态码,默认为 0

sys.stdin

sys.stdin

标准输入流

sys.stdout

sys.stdout

标准输出流

sys.stderr

sys.stderr

标准错误输出流

sys.platform

sys.platform

获取系统平台信息

sys.path

sys.path

模块搜索路径列表

sys.getsizeof

sys.getsizeof(object)

获取对象占用内存大小

sys.getrecursionlimit

sys.getrecursionlimit()

获取当前递归深度限制

sys.setrecursionlimit

sys.setrecursionlimit(limit)

设置递归深度限制

sys.byteorder

sys.byteorder

获取系统字节序

图片

相关文章:

Python的sys模块:系统交互的关键纽带

Python的sys模块&#xff1a;系统交互的关键纽带 对话实录 小白&#xff1a;&#xff08;挠头&#xff09;我知道 Python 能做很多事&#xff0c;可怎么让它和计算机系统‘交流’呢&#xff0c;比如获取系统信息、处理命令行参数&#xff1f; 专家&#xff1a;&#xff08;微…...

若依项目集成sentinel、seata和shardingSphere

集成组件包括MySQL分库分表及读写分离、seata以及Sentinel 若依项目文档连接 代码下载地址 需要结合ruoyi代码配合看&#xff0c;前提是熟悉基本代码结构&#xff0c;熟悉feign调用和基础网关配置等。 采用的版本信息 <java.version>1.8</java.version> <spr…...

张 推进对话式心理治疗:SOULSPEAK的聊天机器人

SOULSPEAK的聊天机器人 利用大语言模型(LLM)来提供低成本的心理治疗服务,旨在解决传统心理咨询在隐私、成本和可及性方面的不足。以下是核心内容的通俗解读: 1. 研究背景:传统心理治疗的困境 问题:全球心理健康问题日益严重(如焦虑、抑郁人数激增),但传统心理咨询受…...

java中的Filter使用详解

Filter&#xff08;过滤器&#xff09;是 Java Web 开发的核心组件之一&#xff0c;用于在请求到达 Servlet 或响应返回客户端之前进行拦截和处理。以下是其核心功能、使用方法和实际场景的详细解析&#xff1a; 一、Filter 的作用与原理 核心作用 Filter 充当请求与响应之间的…...

BERT 作为Transformer的Encoder 为什么采用可学习的位置编码

摘要 BERT 在位置编码上与原始 Transformer 论文中的 sin/cos 公式不同&#xff0c;选择了可学习&#xff08;learned&#xff09;的位置嵌入方案。本文将从 Transformer 原始位置编码选项入手&#xff0c;分析 BERT 选择 learned positional embeddings 的四大核心原因&#x…...

Vue百日学习计划Day43-45天详细计划-Gemini版

Day 43: Composable 函数基础与抽取简单逻辑 (~3 小时) 本日目标: 理解 Composable 函数的概念、优势&#xff0c;并学会如何将简单的、无状态的逻辑抽取为 Composable。所需资源: Vue 3 官方文档 (组合式函数): https://cn.vuejs.org/guide/reusability/composables.html 学…...

Kotlin 协程 (二)

Kotlin 协程提供了丰富的功能&#xff0c;能够高效地处理并发和异步任务。以下是对 Kotlin 协程中常见概念和功能的详细讲解&#xff0c;包括它们的定义、作用、使用场景以及最佳实践。 1. 协程核心概念 1.1 CoroutineScope 定义&#xff1a;CoroutineScope 是协程作用域的抽…...

Linux 下 rsync 工具详解与实用指南

Linux 下 rsync 工具详解与实用指南 一、什么是 rsync&#xff1f; rsync&#xff08;remote sync&#xff09;是 Linux/Unix 系统下常用的数据同步和备份工具。它可以高效地在本地与远程主机之间同步文件和目录&#xff0c;支持增量同步、断点续传、权限保留等功能&#xff…...

2025年医美行业报告60+份汇总解读 | 附 PDF 下载

原文链接&#xff1a;https://tecdat.cn/?p42122 医美行业在消费升级与技术迭代的双重驱动下&#xff0c;已从边缘市场逐步走向主流。数据显示&#xff0c;2024 年中国医美市场规模突破 3000 亿元&#xff0c;年复合增长率达 15%&#xff0c;但行业仍面临正品率不足、区域发展…...

汉得集星獭1.8.0正式发布,高效集成再赋能!

汉得企业级系统集成平台 &#xff08;中文名集星獭&#xff0c;英文名JeeStar&#xff09;1.8.0版本于2025年4月正式发布 。 集星獭是一款一站式多系统集成、多云集成、多端集成、多协议集成、多设备集成、数据集成、页面集成的全域集成解决方案产品。 此次发布主要聚焦于以下…...

一文深度解析:Pump 与 PumpSwap 的协议机制与技术差异

在 Solana 链上&#xff0c;Pump.fun 和其延伸产品 PumpSwap 构成了 meme coin 发行与流通的两大核心场景。从初期的游戏化发行模型&#xff0c;到后续的自动迁移与交易市场&#xff0c;Pump 系列协议正在推动 meme coin 从“爆发性投机”走向“协议化运营”。本文将从底层逻辑…...

数据库实验——备份与恢复

一、目的&#xff08;本次实验所涉及并要求掌握的知识点&#xff09; 1.掌握SQL server的备份与恢复 二、实验内容与设计思想&#xff08;设计思路、主要数据结构、主要代码结构、主要代码段分析&#xff09; 验证性实验 实验1&#xff1a;在资源管理器中建立备份设备实验 …...

抓包分析工具与流量监控软件

目录 一、抓包分析工具&#xff1a;定位问题的“放大镜” 1.1 工作原理简述 1.2 主流工具盘点 1.3 抓包的实战应用 二、流量监控软件&#xff1a;网络全景的“雷达系统” 2.1 功能特征 2.2 常用工具概览 2.3 实战应用场景 五、结语&#xff1a;深入可见&#xff0c;安…...

Go语言实战:使用 excelize 实现多层复杂Excel表头导出教程

Go 实现支持多层复杂表头的 Excel 导出工具 目录 项目介绍依赖说明核心结构设计如何支持多层表头完整使用示例总结与扩展 项目介绍 在实际业务系统中&#xff0c;Excel 文件导出是一项常见功能&#xff0c;尤其是报表类需求中常见的复杂多级表头&#xff0c;常规表格组件往…...

【算法】定长滑动窗口5.20

定长滑动窗口算法&#xff1a; 算法思路 滑动窗口遍历字符串&#xff1a;窗口大小为 k &#xff0c;遍历字符串每个字符&#xff0c;维护窗口内元音字母数量。 ​统计窗口内元音&#xff1a;当字符是元音&#xff08;a/e/i/o/u&#xff09;时&#xff0c;计数器 vowel 加 1。…...

Java操作Elasticsearch 之 [Java High Level REST Clientedit]

<a name"VbjtD"></a> 1. 简述 Elasticsearch 是基于 Lucene 开发的一个分布式全文检索框架&#xff0c;向 Elasticsearch 中存储和从 Elasticsearch 中查询&#xff0c;格式是json。向 Elasticsearch 中存储数据&#xff0c;其实就是向 es 中的 index 下…...

数据集划分与格式转换:从原始数据到模型训练的关键步骤

在计算机视觉项目中&#xff0c;数据集的合理划分和格式转换是实现高效模型训练的基础。本文将详细介绍如何将图片和标注数据按比例切分为训练集和测试集&#xff0c;以及常见的数据格式转换方法&#xff0c;包括 JSON 转 YOLO 格式和 XML 转 TXT 格式。 一、将图片和标注数据…...

MinerU

简介 MinerU 是一款功能全面的文档处理系统&#xff0c;旨在将 PDF 和其他文档格式转换为机器可读的格式&#xff0c;例如 Markdown 和 JSON。该系统专注于在保留文档结构的同时&#xff0c;准确提取文档内容&#xff0c;处理复杂的布局&#xff0c;并转换公式和表格等特殊元素…...

Vue百日学习计划Day46-48天详细计划-Gemini版

Day 46: <KeepAlive> - 组件缓存与优化 (~3 小时) 本日目标: 理解 <KeepAlive> 的作用&#xff0c;学会如何使用它来缓存组件实例&#xff0c;从而优化应用性能和用户体验。所需资源: Vue 3 官方文档 (<KeepAlive>): https://cn.vuejs.org/guide/built-ins/…...

微软的 Windows Linux 子系统现已开源

微软宣布其 Windows Linux 子系统 (WSL) 开源&#xff0c;开放代码供社区成员贡献。自近九年前推出适用于 Windows 10 的 WSL 以来&#xff0c;微软多年来一直致力于开源这项在 Windows 中启用 Linux 环境的功能。 Windows 首席执行官 Pavan Davuluri 表示&#xff1a;“这是开…...

Axure中使用动态面板实现图标拖动交换位置

要在Axure中实现图标拖动交换位置的功能&#xff0c;可以通过动态面板结合交互事件来实现。 实现步骤 准备图标元素 将每个图标转换为动态面板&#xff08;方便拖动和交互&#xff09;。 设置拖动交互 选中图标动态面板 → 添加“拖动时”交互 → 选择“移动”当前动态面板&am…...

深入浅出:Spring Cloud Gateway 扩展点实践指南

文章目录 前言一、为什么需要扩展 Spring Cloud Gateway&#xff1f;二、Spring Cloud Gateway 核心扩展点三、扩展点实战&#xff1a;代码与配置详解3.1 全局过滤器&#xff08;GlobalFilter&#xff09;3.2 路由过滤器&#xff08;GatewayFilter&#xff09;2.3 自定义路由断…...

SCAU18923--二叉树的直径

18923 二叉树的直径 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: G;GCC Description 给定一棵二叉树&#xff0c;你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点…...

理解 RESTful 风格:现代 Web 服务的基石

在当今的互联网时代&#xff0c;Web 服务成为了连接各种应用和系统的关键。而 RESTful 风格&#xff0c;作为一种广泛采用的架构风格&#xff0c;为设计和实现 Web 服务提供了一套简洁而强大的指导原则。本文将深入探讨 RESTful 风格的核心概念、优势以及如何在实际项目中应用它…...

大模型(3)——RAG(Retrieval-Augmented Generation,检索增强生成)

文章目录 1. 核心组成2. 工作流程3. 训练方式4. 优势与局限5. 应用场景6. 典型模型变体总结 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;是一种结合了信息检索与文本生成的技术&#xff0c;旨在通过引入外部知识库提升生成内容的准确性…...

电子科技大学软件工程实践期末

Java基础 面向对象 Java高级编程 2023&#xff1a; 软件工程基础 ch1软件工程概述 软件的概念和特点 软件危机的概念以及产生的原因 软件工程的定义 三要素 应用软件工程的原因 三要素&#xff1a;工具&#xff0c;方法&#xff0c;过程 ch2 软件过程 软件生命周期 软件过程…...

线上jvm假死问题排查

1.线上告警接口超时 看接口是用户服务&#xff0c;查看nacos服务实例&#xff0c;发现有一个节点已经下线了 3.找到对应节点所在服务器&#xff0c;jps -l 命令发现用户服务还在&#xff0c;初步判断是假死 4.使用 jstat -gc 进程id 1000 每秒打印gc情况&#xff0c;发现频繁…...

Redis中SETNX、Lua 脚本和 Redis事务的对比

在 Redis 中&#xff0c;SETNX、Lua 脚本 和 Redis 事务 都可以用于实现原子性操作&#xff0c;但它们的适用场景和能力范围不同。以下是详细对比和原因分析&#xff1a; 1. SETNX 的原子性与局限性 (1) 原子性保证 SETNX&#xff08;SET if Not eXists&#xff09; 是 Redis…...

Nginx配置记录访问信息

文章目录 方法一&#xff1a;使用Nginx原生配置记录访问信息方法二&#xff1a;使用Nginx_headers_more模块记录更加详细的信息 Nginx被广泛应用于各种场景如&#xff1a;Web服务器、反向代理服务器、负载均衡器、Web应用防火墙(WAF)等 在实际的产品开发中&#xff0c;无论是功…...

基于机载激光雷达数据的森林生物量估测:AI驱动的遥感革新

一、技术背景与意义 森林生物量是生态系统碳循环和碳汇估算的核心参数。传统遥感方法&#xff08;如光学影像&#xff09;在三维结构解析上存在局限&#xff0c;而机载激光雷达&#xff08;LiDAR&#xff09;凭借高精度点云数据&#xff0c;能够捕捉森林的垂直结构信息。结合人…...

Redis中的事务和原子性

在 Redis 中&#xff0c;事务 和 原子性 是两个关键概念&#xff0c;用于保证多个操作的一致性和可靠性。以下是 Redisson 和 Spring Data Redis 在处理原子性操作时的区别与对比&#xff1a; 1. Redis 的原子性机制 Redis 本身通过以下方式保证原子性&#xff1a; 单线程模型…...

SSL证书:谷歌算法排名的安全基石与信任杠杆

一、技术演进&#xff1a;从安全信号到算法基石 谷歌对SSL证书的重视始于2014年&#xff0c;当时HTTPS首次被纳入排名算法信号。经过十年迭代&#xff0c;SSL证书已从“加分项”升级为“基础门槛”。2025年算法更新中&#xff0c;其权重占比达2%&#xff0c;与页面加载速度、移…...

XXX企业云桌面系统建设技术方案书——基于超融合架构的安全高效云办公平台设计与实施

目录 1. 项目背景与目标1.1 背景分析1.2 建设目标2. 需求分析2.1 功能需求用户规模与场景终端兼容性2.2 非功能需求3. 系统架构设计3.1 总体架构图流程图说明3.2 技术选型对比3.3 网络设计带宽规划公式4. 详细实施方案4.1 分阶段部署计划4.2 桌面模板配置4.3 测试方案性能测试工…...

【GESP真题解析】第 18 集 GESP 一级 2024 年 12 月编程题 1:温度转换

大家好&#xff0c;我是莫小特。 这篇文章给大家分享 GESP 一级 2024 年 12 月编程题第 1 题&#xff1a;温度转换。 题目链接 洛谷链接&#xff1a;B4062 温度转换 一、完成输入 根据题意&#xff0c;输入只有一行&#xff0c;为实数&#xff0c;数据范围&#xff1a; 0 &l…...

鸿蒙开发进阶:深入解析ArkTS语言特性与高性能编程实践

一、前言 在鸿蒙生态蓬勃发展的当下&#xff0c;开发者对于高效、优质的应用开发语言需求愈发迫切。ArkTS 作为鸿蒙应用开发的核心语言&#xff0c;在继承 TypeScript 优势的基础上&#xff0c;进行了诸多优化与扩展&#xff0c;为开发者带来了全新的编程体验。本文将深入剖析…...

现代计算机图形学Games101入门笔记(十七)

双向路径追踪 外观建模 散射介质 人的头发不能用在动画的毛发上。 动物的髓质Medulla特别大 双层圆柱模型应用 BSSRDF是BRDF的延伸。 天鹅绒用BRDF不合理&#xff0c;转成散射介质。 法线分布 光追很难处理微表面模型 光在微型细节上&#xff0c;光是一个波&#xff0c;会发生衍…...

工单派单应用:5 大核心功能提升协作效率

一、工单管理&#xff1a;全流程一目了然 快速创建&#xff1a;录入任务内容、优先级&#xff0c;从源头明确目标 状态分类&#xff1a;待处理 / 进行中 / 已完成工单一目了然&#xff0c;个人进度随时掌控 灵活分配&#xff1a;公海池抢单机制&#xff0c;成员按能力自主接…...

maven 多个模块之间互相引入加载配置的偶遇问题

因为子项目添加了:<!-- aliyun sms SDK --> <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.6.3</version> </dependency>导致原本运行良好的构建模块&#xff0c…...

【蓝桥杯嵌入式】【模块】五、ADC相关配置及代码模板

1. 前言 最近在准备16届的蓝桥杯嵌入式赛道的国赛&#xff0c;打算出一个系列的博客&#xff0c;记录STM32G431RBT6这块比赛用板上所有模块可能涉及到的所有考点&#xff0c;如果有错误或者遗漏欢迎各位大佬斧正。 本系列博客会分为以下两大类&#xff1a; 1.1. 单独模块的讲…...

DP2 跳台阶【牛客网】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 DP2 跳台阶 一、题目描述 二、测试用例 三、解题思路 基本思路&#xff1a;   动态规划题目的难点基本在于构造状态转移方程&#xff0c;对应这题&#xff0c;我们可以发现每次跳跃我…...

KC 喝咖啡/书的复制/奶牛晒衣服/ 切绳子

二分的解题思路&#xff1a; 常解决最小值最大化和最大值最小化问题 步骤解析 确定答案范围 设定初始左边界 left 和右边界 right&#xff0c;确保解在此区间内。例如&#xff1a; 求最小最大值时&#xff0c;left 可取单个元素的最大值&#xff0c;right 取所有元素总和。 …...

Jedis快速入门【springboot】

引入依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>6.0.0</version> </dependency> 创立jedis对象&#xff0c;建立连接 private Jedis jedis; BeforeEach void setUp(){//1 …...

SpringBoot 商城系统高并发引起的库存超卖库存问题 乐观锁 悲观锁 抢购 商品秒杀 高并发

介绍 在高并发场景下&#xff0c;特别是商品秒杀、抢购等情况下&#xff0c;库存超卖问题是一个常见且棘手的问题。为了解决这个问题&#xff0c;Spring Boot 常使用乐观锁和悲观锁来保证数据的正确性和一致性。 悲观锁 悲观锁假设在多线程或多进程环境中&#xff0c;资源会被…...

[python] 轻量级定时任务调度库schedule使用指北

schedule是一款专为简化定时任务调度而设计的Python库&#xff0c;它通过直观的语法降低了周期性任务的实现门槛。作为进程内调度器&#xff0c;它无需额外守护进程&#xff0c;轻量且无外部依赖&#xff0c;适合快速搭建自动化任务。不过&#xff0c;该库在功能完整性上有所取…...

MySQL:to many connections连接数过多

当你遇到 MySQL: Too many connections 错误时&#xff0c;意味着当前连接数已达到 MySQL 配置的最大限制。这通常是由于并发连接过多或连接未正确关闭导致的。 一、查看当前连接数 查看 MySQL 当前允许的最大连接数 SHOW VARIABLES LIKE max_connections;查看当前使用的最大…...

uthash是一个非常轻量级的库

如大家所知&#xff0c;uthash是一个非常轻量级的库。该库的使用非常简单&#xff0c;无需格外的静态库或动态库&#xff0c;仅需导入目标的头文件即可。 这种配置方式虽然简单&#xff0c;但是使用操作却需要用到大量的宏函数。在使用宏函数时不像使用普通函数一样自由和遍历…...

大模型的开发应用(三):基于LlaMAFactory的LoRA微调(上)

基于LlaMAFactory的LoRA微调&#xff08;上&#xff09; 0 前言1 LoRA微调1 LoRA微调的原理1.2 通过peft库为指定模块添加旁支1.3 lora前后结构输出结果对比1.4 使用PyTorch复现 LoRA.Linear1.5 使用peft进行LoRA微调案例 2 LLaMA-Factory2.1 LLaMA-Factory简介2.2 LLaMA-Facto…...

跨域_Cross-origin resource sharing

同源是指"协议域名端口"三者相同&#xff0c;即便两个不同的域名指向同一个ip,也非同源 1.什么是CORS? CORS是一个W3C标准&#xff0c;全称是"跨域资源共享"&#xff08;Cross-origin resource sharing&#xff09;。它允许浏览器向跨源服务器&#xff…...

奥威BI:打破AI数据分析伪场景,赋能企业真实决策价值

在当今企业数字化转型的浪潮中&#xff0c;AI数据分析产品如雨后春笋般涌现&#xff0c;但许多看似创新的功能设计实则难以落地&#xff0c;沦为“伪需求场景”。这些伪场景不仅浪费企业资源&#xff0c;还可能误导决策&#xff0c;阻碍企业数字化转型进程。在此背景下&#xf…...

LLaMA-Factory全解析:大模型微调的开源利器与实战指

技术演进背景与核心价值架构设计与关键技术解析环境搭建与工具链配置全流程微调实战指南企业级应用与高级功能性能优化与安全部署未来发展趋势展望1. 技术演进背景与核心价值 1.1 大模型微调的技术痛点 当前开源大模型(如LLaMA、Qwen、Baichuan等)在通用领域表现优异,但垂…...