Oracle DBA必学Python:数据库自动化管理与实战指南
1. 为什么 2026 年的 Oracle DBA 必须开始学 Python如果你现在还在只用 PL/SQL 和 SQL*Plus 管理 Oracle 数据库可能已经感觉到有些任务越来越吃力了——比如定期生成几百个表的统计报告、自动检查空间使用趋势、批量处理数据质量校验或者把数据库状态和业务指标对接起来。这些任务用纯 SQL 和存储过程不是不能做但代码会写得很长调试麻烦而且很难复用。Python 能把这些零散、重复、需要灵活处理数据的任务变得简单。它有几个特别适合 DBA 的特点脚本化能力强你不需要为了一个小需求去写一套完整的 PL/SQL 包一个几十行的 Python 脚本就能搞定数据导出、格式转换、邮件发送、日志记录。生态丰富有成熟的库可以直接连 Oraclecx_Oracle、处理 Excelpandas、发 HTTP 请求requests、解析日志re、定时任务schedule。跨平台一致同样的脚本在 Windows 服务器、Linux 生产环境、Mac 本地测试机都能运行不像某些 Oracle 客户端工具受操作系统限制。易学易调试语法清晰错误信息友好交互式环境Jupyter、IPython可以边写边试比反复编译存储过程快得多。我建议 DBA 把 Python 当成“数据库管理自动化工具箱”的补充而不是替代 SQL。你不用成为 Python 开发专家但一定要会用它处理那些 SQL 不擅长、手工做又太耗时的任务。2. 从 DBA 视角准备 Python 环境别踩新手坑很多 DBA 第一次装 Python 时会遇到环境变量没配、多版本冲突、包安装失败的问题。下面按数据库管理员常见的 Windows 或 Linux 环境把关键步骤拆解清楚。2.1 选择 Python 版本稳定比新更重要Oracle 数据库环境通常对稳定性要求高所以我不建议直接上最新的 Python 3.12 或 3.13。Python 3.8~3.10是目前最兼容主流第三方库的版本区间特别是 cx_Oracle、pandas、sqlalchemy 这些数据库相关工具包。如果你是 Windows 环境直接去 python.org 下载 3.8.x 或 3.9.x 的安装包。如果公司限制外网下载可以用安装包内置的“离线安装模式”安装时勾选“Install for all users”和“Add Python to PATH”。Linux 环境RHEL/CentOS/Oracle Linux一般自带 Python 2.7 和 3.6但版本太老。最好用软件源安装较新版本# Oracle Linux 8 或 RHEL 8 sudo dnf install python39 python39-pip # 检查版本 python3.9 --version pip3.9 --version注意不要轻易删除系统自带的 Python 2.7某些 Oracle 安装脚本或老旧工具可能依赖它。2.2 配置环境变量和代理如果需要Windows 安装时如果忘了勾选“Add Python to PATH”需要手动加右键“此电脑” → 属性 → 高级系统设置 → 环境变量。在“系统变量”里找到 Path点击编辑新建两条C:\Users\你的用户名\AppData\Local\Programs\Python\Python39\C:\Users\你的用户名\AppData\Local\Programs\Python\Python39\Scripts\打开新 cmd 窗口输入python --version能显示版本号就算成功。如果公司网络需要代理才能访问外网pip 安装包前需要设置代理# 临时设置在命令行执行 set HTTP_PROXYhttp://proxy.company.com:8080 set HTTPS_PROXYhttp://proxy.company.com:8080 # 或者写在 pip 命令里 pip install cx_Oracle --proxyhttp://proxy.company.com:80802.3 安装 DBA 最需要的几个包打开命令行Windows 用 cmd 或 PowerShellLinux 用终端依次安装pip install cx_Oracle # 连接 Oracle 的核心库 pip install pandas # 数据处理和 Excel 导出 pip install openpyxl # 支持新版 Excel 格式 pip install requests # 调用 REST API 发告警 pip install schedule # 定时任务可选如果安装慢或超时可以换国内镜像源pip install cx_Oracle -i https://pypi.tuna.tsinghua.edu.cn/simple验证安装是否成功# 打开 Python 交互环境命令行输入 python import cx_Oracle import pandas as pd print(所有包导入成功)如果没报错说明基础环境准备好了。3. 用 Python 连 Oracle从查询到批量操作3.1 两种连接方式直接连接和连接池对于 DBA 日常的监控脚本、统计查询建议用直接连接如果是长期运行的服务或高并发场景再用连接池。直接连接示例import cx_Oracle # 最简单的方式用 Easy Connect 字符串主机:端口/服务名 dsn cx_Oracle.makedsn(192.168.1.100, 1521, service_nameORCLPDB1) connection cx_Oracle.connect(userscott, passwordtiger, dsndsn) # 或者直接用完整连接字符串 # connection cx_Oracle.connect(scott/tiger192.168.1.100:1521/ORCLPDB1) cursor connection.cursor() cursor.execute(SELECT tablespace_name, bytes/1024/1024 AS size_mb FROM dba_data_files) result cursor.fetchall() for row in result: print(f表空间 {row[0]} 大小 {row[1]:.2f} MB) cursor.close() connection.close()使用连接池适合自动化任务import cx_Oracle pool cx_Oracle.SessionPool( userscott, passwordtiger, dsn192.168.1.100:1521/ORCLPDB1, min2, max5, increment1 ) # 从池中取连接 connection pool.acquire() cursor connection.cursor() # ... 执行查询 cursor.close() pool.release(connection) # 放回池中 # 任务结束后关闭整个池 pool.close()注意生产环境不要把密码硬编码在脚本里可以用环境变量、配置文件或密钥管理服务。3.2 执行 SQL 和 PL/SQL参数化查询避免注入不要用字符串拼接 SQL特别是当条件值来自用户输入或文件时。安全查询示例# 查询特定表空间的使用情况 tablespace_name USERS cursor.execute( SELECT file_name, bytes/1024/1024 FROM dba_data_files WHERE tablespace_name :1, [tablespace_name] ) # 多参数查询 cursor.execute( SELECT owner, table_name, num_rows FROM all_tables WHERE owner :owner AND num_rows :min_rows , ownerSCOTT, min_rows1000)调用 PL/SQL 块# 执行匿名块 plsql_block BEGIN DBMS_STATS.GATHER_TABLE_STATS( ownname :owner, tabname :table_name, estimate_percent 20 ); END; cursor.execute(plsql_block, ownerSCOTT, table_nameEMP)3.3 批量插入和数据导出告别 SQL*Loader 繁琐配置需要把 Excel 或 CSV 数据导入 Oracle 时用 Python 比用 SQL*Loader 更灵活。从 CSV 批量插入import csv import cx_Oracle connection cx_Oracle.connect(scott/tigerlocalhost:1521/ORCLPDB1) cursor connection.cursor() # 准备数据假设 CSV 有 name, age, department 三列 data [] with open(employees.csv, r, encodingutf-8) as f: reader csv.reader(f) next(reader) # 跳过标题行 for row in reader: data.append(tuple(row)) # 批量插入 cursor.executemany( INSERT INTO emp_temp (name, age, dept) VALUES (:1, :2, :3), data ) connection.commit() print(f插入了 {cursor.rowcount} 行数据)查询结果导出到 Excelimport pandas as pd import cx_Oracle connection cx_Oracle.connect(scott/tigerlocalhost:1521/ORCLPDB1) # 直接读 SQL 到 DataFrame df pd.read_sql( SELECT tablespace_name, sum(bytes)/1024/1024 as total_mb FROM dba_data_files GROUP BY tablespace_name , conconnection) # 导出到 Excel df.to_excel(tablespace_usage.xlsx, indexFalse) print(导出完成文件保存为 tablespace_usage.xlsx)4. 实战案例用 Python 实现日常 DBA 任务自动化4.1 自动生成表空间使用率日报这个脚本查询表空间使用情况生成 Excel 报告并发送邮件告警如果使用率超过阈值。import cx_Oracle 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 def check_tablespace_usage(connection_string, threshold_percent85): 检查表空间使用率返回 DataFrame 和告警列表 connection cx_Oracle.connect(connection_string) # 查询表空间使用情况 sql SELECT ddf.tablespace_name, SUM(ddf.bytes)/1024/1024 as total_mb, SUM(dfs.bytes)/1024/1024 as free_mb, ROUND((1 - SUM(dfs.bytes)/SUM(ddf.bytes)) * 100, 2) as usage_percent FROM dba_data_files ddf JOIN dba_free_space dfs ON ddf.tablespace_name dfs.tablespace_name GROUP BY ddf.tablespace_name ORDER BY usage_percent DESC df pd.read_sql(sql, conconnection) connection.close() # 找出需要告警的表空间 alert_tablespaces df[df[USAGE_PERCENT] threshold_percent] return df, alert_tablespaces def send_alert_email(alert_df, recipient): 发送告警邮件 # 这里简化邮件配置实际使用时需要填 SMTP 服务器信息 msg MIMEMultipart() msg[Subject] fOracle 表空间告警 - {datetime.now().strftime(%Y-%m-%d)} msg[From] dbacompany.com msg[To] recipient # 邮件正文 body f 以下表空间使用率超过阈值 {alert_df.to_string(indexFalse)} 请及时处理。 msg.attach(MIMEText(body, plain)) # 实际发送代码需要配置 SMTP # with smtplib.SMTP(smtp.company.com) as server: # server.send_message(msg) print(告警邮件已准备需要配置 SMTP 服务器) # 主流程 if __name__ __main__: connection_str scott/tigerlocalhost:1521/ORCLPDB1 # 检查使用率 df, alerts check_tablespace_usage(connection_str, threshold_percent80) # 生成 Excel 报告 report_file ftablespace_report_{datetime.now().strftime(%Y%m%d)}.xlsx df.to_excel(report_file, indexFalse) print(f报告已生成: {report_file}) # 如果有告警发送邮件 if not alerts.empty: send_alert_email(alerts, teamcompany.com) print(发现表空间告警)4.2 批量统计表信息并生成数据字典需要给业务部门提供数据字典时手动整理几百个表的字段信息很耗时。import cx_Oracle import pandas as pd def generate_data_dictionary(connection_string, ownerNone): 生成数据字典 connection cx_Oracle.connect(connection_string) cursor connection.cursor() # 查询所有表的基本信息 table_sql SELECT table_name, num_rows, last_analyzed FROM all_tables WHERE owner :owner OR :owner IS NULL ORDER BY table_name cursor.execute(table_sql, ownerowner) tables cursor.fetchall() results [] for table_name, num_rows, last_analyzed in tables: # 查询每个表的字段信息 column_sql SELECT column_name, data_type, data_length, nullable FROM all_tab_columns WHERE table_name :table_name ORDER BY column_id cursor.execute(column_sql, table_nametable_name) columns cursor.fetchall() for col_name, data_type, data_length, nullable in columns: results.append({ table_name: table_name, column_name: col_name, data_type: data_type, data_length: data_length, nullable: nullable, num_rows: num_rows, last_analyzed: last_analyzed }) cursor.close() connection.close() df pd.DataFrame(results) df.to_excel(fdata_dictionary_{owner or all}.xlsx, indexFalse) print(f数据字典已生成共 {len(df)} 行记录) # 使用示例 generate_data_dictionary(scott/tigerlocalhost:1521/ORCLPDB1, ownerSCOTT)4.3 监控数据库性能指标并记录历史趋势定期采集 AWR 或 Statspack 的关键指标建立性能基线。import cx_Oracle import pandas as pd import time import schedule def collect_performance_metrics(connection_string): 采集关键性能指标 connection cx_Oracle.connect(connection_string) cursor connection.cursor() metrics_sql SELECT (SELECT VALUE FROM v$sysstat WHERE name user commits) as user_commits, (SELECT VALUE FROM v$sysstat WHERE name user rollbacks) as user_rollbacks, (SELECT COUNT(*) FROM v$session) as active_sessions, (SELECT ROUND(SUM(bytes)/1024/1024, 2) FROM v$sgastat WHERE pool shared pool) as shared_pool_mb, (SELECT ROUND(SUM(bytes)/1024/1024, 2) FROM v$sgastat WHERE pool large pool) as large_pool_mb FROM dual cursor.execute(metrics_sql) metrics cursor.fetchone() cursor.close() connection.close() return { timestamp: pd.Timestamp.now(), user_commits: metrics[0], user_rollbacks: metrics[1], active_sessions: metrics[2], shared_pool_mb: metrics[3], large_pool_mb: metrics[4] } def monitor_database(): 定时监控任务 metrics collect_performance_metrics(scott/tigerlocalhost:1521/ORCLPDB1) # 追加到 CSV 文件简易时序数据库 df pd.DataFrame([metrics]) try: existing_df pd.read_csv(performance_metrics.csv, parse_dates[timestamp]) updated_df pd.concat([existing_df, df], ignore_indexTrue) except FileNotFoundError: updated_df df updated_df.to_csv(performance_metrics.csv, indexFalse) print(f指标已记录: {metrics[timestamp]}) # 设置定时任务每5分钟执行一次 schedule.every(5).minutes.do(monitor_database) print(数据库监控已启动每5分钟采集一次指标...) print(按 CtrlC 停止) try: while True: schedule.run_pending() time.sleep(1) except KeyboardInterrupt: print(监控已停止)5. 常见问题排查和性能优化建议5.1 连接问题排查顺序当 Python 连不上 Oracle 时按这个顺序检查网络连通性先用 tnsping 或 telnet 测试端口tnsping 192.168.1.100:1521/ORCLPDB1 # 或者 telnet 192.168.1.100 1521客户端版本兼容cx_Oracle 版本要与 Oracle 客户端版本匹配import cx_Oracle print(cx_Oracle.version) # 检查 cx_Oracle 版本环境变量Linux 需要设置 LD_LIBRARY_PATH 指向 Instant Clientexport LD_LIBRARY_PATH/path/to/instantclient_19_19:$LD_LIBRARY_PATH权限问题确认使用的数据库用户有 CONNECT 权限GRANT CONNECT TO scott;5.2 大数据量操作的内存优化处理大量数据时不要一次性读取所有结果到内存# 不好的做法数据量大时会内存溢出 cursor.execute(SELECT * FROM large_table) all_rows cursor.fetchall() # 可能几GB数据 # 推荐做法分批处理 cursor.execute(SELECT * FROM large_table) while True: batch cursor.fetchmany(1000) # 每次取1000行 if not batch: break for row in batch: process_row(row) # 处理每一行或者使用 pandas 的 chunksize# 分批读取大数据集 for chunk in pd.read_sql(SELECT * FROM large_table, conconnection, chunksize10000): process_chunk(chunk) # 处理每个数据块5.3 错误处理和日志记录生产环境脚本一定要有完善的错误处理import logging import cx_Oracle # 配置日志 logging.basicConfig( filenamedba_scripts.log, levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s ) def safe_database_operation(connection_string, sql, paramsNone): 带错误处理的数据库操作 try: connection cx_Oracle.connect(connection_string) cursor connection.cursor() if params: cursor.execute(sql, params) else: cursor.execute(sql) result cursor.fetchall() cursor.close() connection.close() logging.info(fSQL执行成功: {sql}) return result except cx_Oracle.DatabaseError as e: error_obj, e.args logging.error(f数据库错误: {error_obj.message} (代码: {error_obj.code})) return None except Exception as e: logging.error(f未知错误: {str(e)}) return None # 使用示例 result safe_database_operation( scott/tigerlocalhost:1521/ORCLPDB1, SELECT * FROM emp WHERE deptno :1, [10] )6. 学习路径建议从 DBA 到 Python 自动化能手6.1 第一阶段基础操作1-2周学会安装 Python 和必要包掌握 cx_Oracle 基本连接和查询能用 Python 替代 SQL*Plus 执行日常检查学会把查询结果导出为 Excel/CSV6.2 第二阶段脚本自动化2-4周编写定时执行的监控脚本处理文件 I/O读配置文件、写日志添加错误处理和邮件告警学会使用 pandas 进行数据清洗和分析6.3 第三阶段生产级工具1-2个月设计可配置的自动化框架实现任务调度和并发处理集成到现有监控系统如 Prometheus、Zabbix编写单元测试和文档6.4 持续学习资源官方文档cx_Oracle 文档、Python 标准库文档实战项目从公司实际需求出发解决真实问题社区交流Oracle 和 Python 相关技术社区代码审查请有经验的同事 review 你的脚本最关键的是从一个小而具体的需求开始比如先自动化你每周手动执行的某个报表任务。每解决一个实际问题你的 Python 能力和自动化思维都会提升一个层次。Python 不会取代你对 Oracle 内核原理的理解但能让你从重复劳动中解放出来把精力集中在更有价值的数据库架构设计和性能优化上。这才是 2026 年 DBA 的核心竞争力。

相关新闻

Claude Code /keybindings 怎么用?快捷键冲突、配置文件和终端映射教程

Claude Code /keybindings 怎么用?快捷键冲突、配置文件和终端映射教程

Claude Code 在终端里提供大量编辑、导航和任务控制快捷键,但默认按键可能与 tmux、IDE、输入法或终端自身冲突。/keybindings 用于打开或创建自定义按键配置,让常用动作重新映射到更顺手的组合。配置前应先确认按键到底被哪一层截获,再修改 …

2026/8/1 2:45:48 阅读更多 →
Claude Code / Cursor 国内配置教程:API 中转站接入 Claude、GPT、DeepSeek(2026 实测)

Claude Code / Cursor 国内配置教程:API 中转站接入 Claude、GPT、DeepSeek(2026 实测)

### 正文很多国内开发者在用 Claude Code、Cursor 时,卡在同一个地方:官方 API 申请要绑国外信用卡,网络访问不稳定,想切换 GPT / DeepSeek / Gemini 还得分别申请、分别配 Key。这篇文章记录我现在的做法——用一个自建的 API 中…

2026/8/1 2:45:48 阅读更多 →
Roblox自制英雄开发:银色獠牙邦古技能实现与性能优化

Roblox自制英雄开发:银色獠牙邦古技能实现与性能优化

1. 先搞清楚这个自制英雄的核心玩法是什么看到“银色獠牙 邦古(觉醒状态)”这个标题,第一反应不是急着找代码,而是先确认它到底属于哪种类型的自制英雄。在 Roblox 这类平台的自制内容里,英雄实现方式通常分几种:纯外观换皮、技能…

2026/8/1 2:45:48 阅读更多 →

最新新闻

开源大模型迎来Claude时刻:GLM-5.2与Mythos深度评测与部署指南

开源大模型迎来Claude时刻:GLM-5.2与Mythos深度评测与部署指南

1. 项目概述:当开源模型迎来“Claude时刻”最近在AI社区里,一个非常有意思的现象正在发生:大家开始把智谱最新发布的GLM-5.2模型,和一个名为“Mythos”的开源模型放在一起讨论,甚至有人称之为“开源Claude时刻”。这个…

2026/8/1 3:34:07 阅读更多 →
Hive表结构变更实战:ALTER TABLE核心操作与Schema演化最佳实践

Hive表结构变更实战:ALTER TABLE核心操作与Schema演化最佳实践

1. 项目概述:Hive表结构变更的实战指南在数据仓库的日常运维和数仓开发中,我们几乎每天都要和数据表打交道。Hive作为构建在Hadoop之上的数据仓库工具,其表结构的灵活性直接关系到数据模型的迭代效率和数据应用的稳定性。很多刚接触Hive的同学…

2026/8/1 3:34:06 阅读更多 →
TM1650驱动四位数码管:I2C接口应用与单片机代码实现

TM1650驱动四位数码管:I2C接口应用与单片机代码实现

1. 项目概述:从点亮一个段到驱动四位数字如果你玩过单片机,大概率不会对数码管感到陌生。从简单的电子钟、温湿度计,到工业仪表、家用电器,这种由多个发光二极管(LED)组成的显示器件无处不在。单个数码管驱…

2026/8/1 3:34:06 阅读更多 →
数字化打卡系统:习惯养成的行为心理学与工具实践

数字化打卡系统:习惯养成的行为心理学与工具实践

1. 项目概述"3/26打卡"这个看似简单的标题背后,实际上反映了一个普遍存在的现代人需求——习惯养成与自我管理。作为一个长期关注效率工具和习惯养成的实践者,我发现日期打卡的组合形式,往往代表着一种个人成长记录系统。在快节奏的…

2026/8/1 3:34:06 阅读更多 →
皮尔逊相关系数:从计算到统计推断的完整指南

皮尔逊相关系数:从计算到统计推断的完整指南

1. 项目概述:从“算出来”到“信得过”的相关系数在数据分析、机器学习甚至是日常的科研工作中,我们常常需要量化两个变量之间的关系。是强相关还是弱相关?是正相关还是负相关?这时,皮尔逊相关系数(Pearson…

2026/8/1 3:34:06 阅读更多 →
如何实现TikTok Shop同行数据截流自动化?独占IP与指纹隔离,告别批量封号

如何实现TikTok Shop同行数据截流自动化?独占IP与指纹隔离,告别批量封号

如何实现TikTok Shop同行数据截流自动化?独占IP与指纹隔离,告别批量封号 做店群的老板都知道,TikTok Shop的同行数据截流,是店群运营中最耗人力也最容易出错的环节。 同行截流是店群最核心的引流手段。别人花大价钱投流的爆款&a…

2026/8/1 3:33:06 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →