AnyPS5:用Python打造PS5素材归档与存储管理工具箱
PS5 玩家应该都有过这种体验主机里塞满了截图和录像想导出来整理却只能靠 U 盘一个个拷贝内置 SSD 动不动就红着脸提示空间不足看着一堆上百 GB 的游戏不知道该删哪个存档备份要么依赖会员云空间要么就在系统设置里裸奔一点安全感都没有。AnyPS5 就是冲着这三个痛点去的——一个跑在电脑上的 PS5 素材与存储管理工具箱。这篇博文整理了我从零搭建它的完整思路、核心代码、踩坑记录以及最终沉淀下来的使用习惯希望能帮你省下一点折腾的时间。这个项目目前定位是“本地优先”的辅助工具核心覆盖三块素材自动归档与预览转码、外接硬盘容量分析、存档备份的本地多版本管理。全程不碰系统底层不接入任何在线服务主要面向有一台 PS5、一台电脑平时会用 U 盘或者局域网传素材的玩家也适合想给自己的小工具项目找一个真实落地场景的开发者参考。1. 为什么会有 AnyPS5从玩家痛点反推需求1.1 三个最影响体验的日常问题第一个问题是素材导出的原始体验。PS5 自带的媒体相册能按游戏分类但导出的文件命名基本就是一串 ID 加时间戳拷贝到电脑之后完全无法辨认哪段是哪段。比如你打了三小时《某竞速大作》录了二十多段回放复制到电脑里看到的是一堆Screenshot_2024xxxx_xxxxx和Clip_2024xxxx_xxxxx这样的名字想剪个视频先得花半小时猜内容。更麻烦的是主机截图是 PNG 或者 WebP录像默认是 WebM 封装很多剪辑软件打开并不流畅还得自己转码。第二个问题是存储焦虑。PS5 内置 SSD 大概 600 多 GB 可用现在稍微大点的 3A 游戏动辄上百 GB装三四个就快满了。外接 USB 硬盘虽然能扩展但很多玩家外接之后还是稀里糊涂地塞东西根本不清楚到底哪个游戏吃掉了多少空间。系统设置里虽然能看到存储占用但信息颗粒度太粗不能按单款游戏统计录像、截图、补丁各自占了多大空间。第三个问题是存档备份的混乱。PS5 支持把存档备份到 U 盘也支持云备份但两者都有各自的限制。U 盘备份每次只能复制当前选中的存档想给一个游戏做多点时间的历史版本得手动反复复制粘贴云备份容量有限而且对非会员来说几乎等于没有。我自己就遇到过 Game 存档损坏后回滚到两天前的备份才发现已经覆盖了旧版本的情况那种感觉真的很难受。这三个问题单独看都有官方路径能解决但体验都非常“原始”。AnyPS5 的想法很简单把电脑当成一个中转站用自动化脚本和一个小工具把这些零散操作串起来减少重复劳动。1.2 选型逻辑为什么做“工具箱”而不是单一功能开发之前我也想过是不是只写一个“素材导出器”就够了。后来放弃了原因有二。第一玩家拿到工具之后的需求是链式的。导出素材通常伴随着整理分类整理分类之后又希望快速预览预览完又想剪进视频同样清空间的时候需要看占用明细看完明细又需要备份存档。如果做成单一功能用户还得自己拼凑多个软件来完成任务链条。做成工具箱形态每个功能模块独立但共享同一个文件索引和配置体验才连贯。第二单一功能工具往往追求“一键完成”而玩家实际情况千差万别。有人用 U 盘拷贝素材有人开着 FTP 传输有人挂载 SMB 共享有人连接的是机械硬盘有人用的是高速固态有人只玩一个游戏有人十几个游戏轮着玩。一套写死的导入逻辑很难覆盖这些场景。工具箱的思路是工具负责识别、整理、统计用户自己决定数据从哪里来、到哪里去灵活度最高。所以最终的架构是一个 Python 写的跨平台桌面应用核心功能拆成独立模块统一走命令行交互加一个极简界面。底层依赖尽量少主要用到标准库加少数几个成熟的第三方库比如os、shutil、sqlite3、subprocess转码调用 FFmpeg。不碰任何主机端插件、不修改系统文件、不访问主机系统分区安全性上让人放心一些。2. 核心功能拆解与实现要点2.1 素材库截图与录像的自动归档素材整理这个模块我把它拆成了三个步骤扫描、识别、归档。扫描阶段要解决的问题是“文件从哪里来”。PS5 的媒体文件可以通过 U 盘复制到电脑也可以用电脑端媒体播放器通过局域网访问主机媒体相册。我实测下来U 盘拷贝最稳定适合大体积录像局域网串流预览更方便但受网络环境影响传 4K 视频偶尔会断流。所以在工具里素材导入入口做成可配置的默认扫描电脑上的指定文件夹用户可以设定多个来源目录比如 U 盘挂载点和局域网挂载路径。识别阶段是重头戏。PS5 导出的文件名通常包含主机生成的 ID 和拍摄时间但这个 ID 跟游戏名毫无关系所以需要额外的映射表。我提供一个game_aliases.json配置把常用游戏的缩写、英文名、中文名之间做映射再通过文件名里的 ID 前缀去模糊匹配。匹配不上的就归入“未分类”由用户手动指定。这里的核心原则是宁可漏分不可错分。错分类比没分类更让人抓狂。归档阶段就是简单的shutil.move按游戏名 / 类型截图或录像/ 日期 / 原始文件名三层目录组织。同时生成一份 SQLite 索引记录每个文件的路径、大小、分辨率、时间戳、所属游戏。这样后面做任何统计、搜索都不用再全盘扫描一遍。2.2 硬件常识与素材格式的取舍很多 PS5 用户不知道的一点主机截图默认保存为 PNG录像默认保存为 WebM但 WebM 用的是 VP9 编码。VP9 在 Windows 资源管理器和部分剪辑软件里预览并不顺畅所以我在工具里加入了一个可选的转码功能把录像转成 H.264 编码的 MP4。转码调用 FFmpeg 命令行核心参数大概是这样ffmpeg -i input.webm -c:v libx264 -preset fast -crf 23 -c:a aac -b:a 192k -movflags faststart output.mp4几个参数解释一下-preset fast是速度和体积的折中实测比medium快 20% 左右-crf 23是视觉无损的常用档位-movflags faststart让 MP4 元数据前置在网页和播放器里加载更快。转码是 CPU 密集型操作我在工具里默认开启多进程按 CPU 核心数减二来分配任务避免把电脑卡死。如果只是想在主机上回看其实原始 WebM 就能播没必要转但如果你想把素材剪成视频上传我强烈建议转一遍。另外截图我反而建议保留 PNG。PNG 是无损格式后续修图、抠图都方便。如果嫌体积大可以在工具里另存一份 JPG 版用于预览原图别动。2.3 硬盘空间助手容量分析与迁移建议这一块我做得比系统自带存储管理更“主动”一点。原理很简单扫描外接硬盘和内置 SSD 上的游戏目录汇总每个游戏的总体积然后生成一个按大小排序的列表。基于这个列表给三条迁移建议哪个游戏体积大且最近两个月没启动过适合先备份哪个游戏有体积巨大的录像需要转码压缩哪个游戏可以直接清理补丁缓存目录。实际操作中有一个坑外接硬盘的文件系统不一样读出来的统计口径也不同。主机支持 exFAT 和 FAT32但 exFAT 挂载到 Windows 和 Mac 上都能正常识别所以是首选。FAT32 有单文件 4GB 限制录像稍微长一点就拷不进去踩过这个坑之后我在工具里加了一个文件大小预检拷素材前就告诉你哪个文件会超过限制。然后是目录分析的实现。我通过遍历挂载盘的根目录计算每个一级目录的总大小。因为 PS5 在外接硬盘上会生成一个包含所有安装游戏的目录结构所以一级目录通常就对应游戏或应用。工具用os.scandir递归统计但加了层缓存避免每次打开都等几十秒。2.4 存档备份与恢复的本地化方案PS5 官方支持把存档备份到 U 盘但操作非常别扭你得进设置、选主机存储、再选游戏一次只能选一个。AnyPS5 提供一个“备份助手”模块相当于把官方流程外面包了一层自动化。你把 U 盘插到电脑上工具识别出存档备份目录后会自动把所有存档复制到一个带时间戳的文件夹里并生成一个 JSON 清单记录每个存档的对应游戏名、备份时间和版本号。恢复的时候工具会先检查备份版本列表让你选一个时间点再把对应文件复制回 U 盘原目录。整个过程不需要任何破解、越权操作完全走官方允许的文件路径。这样做最大的好处是你可以给一个游戏保存十几个不同的历史版本想回滚到任意一天都行。这里必须强调不要尝试去解析或修改 PS5 存档文件的结构一方面容易损坏存档另一方面也越过了工具该有的边界。AnyPS5 只做文件级的复制、移动、重命名、清单管理不做任何内容级修改。3. 实操过程一个可复现的最小版本3.1 环境准备与项目结构我开发时用的是 Windows 11 加 Python 3.10其实跨平台也没有问题代码里没有依赖任何 Windows 专属 API。你只需要准备Python 3.10 及以上FFmpeg转码功能才需要装完记得加到系统 PATH一个 PS5 导出的素材文件夹或者一块 U 盘项目结构我贴一下核心部分anyps5/ ├── main.py # 入口命令行交互 ├── config.json # 配置来源目录、归档目录、游戏别名 ├── core/ │ ├── scanner.py # 文件扫描与游戏识别 │ ├── archiver.py # 裁剪、分类、重命名 │ ├── storage_analyzer.py # 硬盘空间统计 │ ├── backup_helper.py # 存档备份与恢复 │ └── ffmpeg_wrapper.py # FFmpeg 调用封装 ├── data/ │ ├── game_aliases.json # 游戏别名词典 │ └── media_index.db # SQLite 索引 └── scripts/ ├── batch_convert.py # 独立批量转码脚本 └── cleanup_duplicates.py # 重复文件清理这个结构是按“每个模块干一件事”的思路拆的后期想加功能也方便比如加一个“按分辨率筛选”或者“按月生成回顾报告”都不会牵扯到其他模块。3.2 素材扫描与识别的核心逻辑扫描模块的核心函数大概长这样import os import re import json GAME_PATTERN re.compile(r^(game_|GAME_)?([A-Za-z0-9_\-]?)_?(20\d{6}_\d{6})?\.(png|webm|mp4|jpg)$) def load_aliases(pathdata/game_aliases.json): with open(path, r, encodingutf-8) as f: return json.load(f) def identify_game(filename: str, aliases: dict) - str: # 先尝试从文件名前缀直接匹配游戏代码 # 匹配不到就尝试别名表 # 再匹配不到返回 未分类 for game, keywords in aliases.items(): for keyword in keywords: if keyword.lower() in filename.lower(): return game return 未分类看起来简单但里面的坑不少。最典型的情况是不同主机语言环境下导出的文件名规则会变。比如中文系统下导出的截图可能是中文名加日期英文系统下就是纯英文。我在处理时就遇到了同一款游戏两种命名都有的情况所以最终方案是同时保留原始文件名和整理后文件名两列记录避免误删或混淆。分类之后归档模块会做三件事建立新路径 游戏名 / 类型 / 日期 / 原名的目录结构把文件移动过去把信息写入 SQLite。写数据库我用的是事务批量插入一千多个文件的索引建立大概只要两秒。3.3 容量分析的数据统计口径存储分析模块用到了两个技巧一个是目录树递归统计一个是文件去重。递归统计做的时候要注意一点有的游戏目录里嵌套了多层子目录像 DLC、补丁、缓存散落各处深度可能到七八层。os.scandir比os.walk性能好不少我实测一个 2TB 外接硬盘全盘扫描大约 30 秒出结果。文件去重则是给“快满了又不敢删”的玩家准备的。工具按文件大小和哈希值做分桶找出那些出现在多个游戏目录下的重复大文件。常见场景是你装了两个同系列游戏共享了很多 overlord 动画、语音包又或者你导出素材的时候重复复制过好几份。工具会列出候选清单你确认后才会真正删除绝不自动动手。统计结果我用一个简单的表格打印出来大致的列是游戏名、总大小、截图数、录像数、录像总时长、最近访问时间。按总大小降序排。这样一眼就能看出哪款游戏才是真正的存储空间杀手。3.4 存档备份助手的实操流程存档备份模块的交互流程设计成向导式每一步都有明确提示选择 U 盘挂载目录。工具扫描 U 盘内是否存在 PS5 存档备份目录。如果不存在说明你还没有在主机上做过任何备份它会提示你按“设置 已保存的数据和游戏应用 上传或复制到 USB”先手动导出一份。识别出存档后工具列出所有可备份的游戏列表支持多选。确认后工具把每个游戏的存档目录复制到一个带时间戳的备份文件夹同时在 JSON 清单里记录版本信息。恢复流程则是反方向的从历史备份时间点里选择再远端复制回 U 盘。这个过程我前后跑了十几趟包括模拟 U 盘中途拔出、空间不足、文件名带特殊字符等各种情况。最终版本里对每一步都加了异常捕获保证中途失败不会留下半截文件。4. 常见问题与排查技巧实录4.1 主机导出的 WebM 视频在电脑上黑屏无声音这是我遇到最多的问题。原因很简单Windows 自带的媒体播放器对 VP9 编码支持不好。解决方法是装一个支持 VP9 的解码器或者干脆用工具批量转码成 MP4。我自己用工具里内置的 FFmpeg 转换后所有剪辑软件都能正常打开。4.2 外接硬盘提示“需要格式化”但主机一直能用这种情况大概率是文件系统损坏的表象不是因为主机和电脑不兼容。PS5 要求 exFAT 或 FAT32如果你把硬盘接到电脑上时不小心点了 Windows 的“修复”建议就有可能改写了分区表。任何外接硬盘同时用于主机和电脑时我都建议先在电脑上确认文件系统是 exFAT然后不要对分区做任何写操作只读访问和拷贝文件没问题。如果你真的误格式化了市面上有些数据恢复工具能找回一部分文件但成功率不是百分之百最好是提前备份一份清单。4.3 局域网传素材经常断流我一开始用 SMB 从主机拷贝录像频繁断流。排查下来发现是无线网络波动导致的后来改成网线直连路由直接解决了。如果只想偶尔传一两段小视频5GHz Wi-Fi 也够用但如果是批量导出一晚上的录像素材强烈建议用网线连接或者直接把 U 盘插到主机上拷贝再拔到电脑。我的工具里也做了传输校验复制完成后对比文件大小和哈希不一致就标记重传这样能避免素材不完整导致剪辑白干。4.4 截图时间戳差 8 小时部分玩家的主机时区设置和电脑不同步导致截图文件在电脑上显示的时间是 UTC比本地时间慢了 8 个小时。工具里我加了一个“时区偏移”配置项默认 0改成 8 后所有文件的时间戳按本地时间归档。其实说白了主机导出文件的元信息里带的时区信息不完整你只能在工具里手动指定一个偏移量一次性修正所有历史文件。4.5 重复素材太多导致硬盘白白爆掉素材导出多了之后难免在多个文件夹里重复保存。我的工具里加了个清理脚本扫描规则很简单同名文件优先保留在更完整的归档目录里不同名但哈希相同的保留最近修改的那个。这个脚本运行之前会先生成一份报告你可以预览再决定。所有的清理操作都先移动到回收站而不是永久删除给自己留后悔的余地。5. 工具化之后我养成的几个长期习惯工具写完到现在用了几个月最大的感受是它解决的不仅是操作效率问题还潜移默化地改变了我的素材管理方式。以前我录了素材就乱丢等到要剪视频才翻箱倒柜现在每次打完游戏顺手在电脑上跑一次归档命令所有素材自动按游戏和日期排好索引里也能随时搜到。上个月回看春节时录的一批赛车回放几秒钟就找到了目标片段。第二个习惯是给存档备份做双保险。官方云备份是一份本地 U 盘再存一份AnyPS5 再做一个时间快照版本三份备份落在两种介质上怎么都不容易丢。之前丢过存档后我现在每周固定跑一次备份助手雷打不动。第三个习惯跟安全有关凡是工具自动做的操作我都要先预览再执行。代码里所有删除、移动、批量转码都设计成“打印待办列表 - 确认执行”的模式绝不提供一键全盘清理。这样虽然多了一步但大大降低了误操作的概率。最后分享一个小技巧游戏别名词典是工具好用程度的关键。你用得越久词典里积累的游戏别名越多后续分类就越精准。建议每次导入新游戏时花十秒钟在 JSON 里加一条别名记录这比什么都靠谱。AnyPS5 目前还是一个非常个人化的项目代码风格、目录结构、交互方式都带着明显的自用痕迹。如果你也想搭一个类似的工具箱我的建议是先别追求功能多把你最痛的一个环节自动化跑顺了再扩展。工具的意义不在于有多强的功能集而在于你真正会每天都用它。

相关新闻

从代号 buzz 到商家口碑快报:模糊需求下的 MVP 落地复盘

从代号 buzz 到商家口碑快报:模糊需求下的 MVP 落地复盘

接手buzz这个项目的时候,我手上只有三个字母:buzz。没有需求文档,没有原型图,没有一句话补充说明,甚至连项目群里面也只有一个名字孤零零挂着。领导的原话是“你先研究研究,把它弄出来”,然后就…

2026/10/15 7:56:02 阅读更多 →
【云安全】云服务器安全组避坑指南:90% 的人配置都错了

【云安全】云服务器安全组避坑指南:90% 的人配置都错了

【云安全】云服务器安全组避坑指南:90% 的人配置都错了 ⚠️ 免责声明 本文所有配置教程、避坑方案、安全加固策略,仅用于合法云服务器运维、企业安全加固、网络安全合规学习。禁止利用本文技术绕过云安全策略、恶意扫描、入侵他人云服务器。所有错误配置…

2026/10/15 7:56:02 阅读更多 →
现场驱动型工程(FDE):从用户行为中生长出的产品迭代方法

现场驱动型工程(FDE):从用户行为中生长出的产品迭代方法

1. 项目概述:FDE 不是新概念,而是被重新擦亮的行业工作法“前线共创,双向赋能”这八个字,最近在制造业、零售业、教育科技和本地生活服务几个圈子里反复刷屏。我上个月去东莞一家做智能仓储设备的工厂做交付支持,车间主…

2026/10/15 7:56:02 阅读更多 →

最新新闻

多模态AI视频搜索实战:从250分钟到2分钟的工程化落地

多模态AI视频搜索实战:从250分钟到2分钟的工程化落地

1. 项目背景与核心痛点拆解1.1 250分钟到底卡在哪里视频搜索这件事,没做过的人会觉得不就是搜个关键词吗。但真正处理过大规模视频素材库的从业者都清楚,传统视频检索的流程有多笨重。Cond Nast 作为一家拥有海量视频内容的媒体集团,旗下品牌…

2026/10/15 8:24:32 阅读更多 →
2026年薪酬设计口碑爆棚的公司,靠什么赢得人心?

2026年薪酬设计口碑爆棚的公司,靠什么赢得人心?

2026年,企业人才争夺战进入白热化阶段。在薪资谈判桌上,一个数据精准、逻辑清晰的薪酬方案,往往能成为决定候选人去留的关键。我调研了数十家2025-2026年薪酬管理口碑极佳的头部企业,发现它们背后都有一个共同的“隐形推手”——一…

2026/10/15 8:24:32 阅读更多 →
基于JSP的相册管理系统:数据库设计、文件上传与项目避坑指南

基于JSP的相册管理系统:数据库设计、文件上传与项目避坑指南

简介:基于JSP与MySQL的相册管理系统源码包,适合Java Web初学者、课程设计或毕业设计参考,主要用于实现用户照片的在线上传、分类管理、查看与分享。整套资源共115个文件,包括20个JSP页面负责前端展示,22个Java源文件及…

2026/10/15 8:24:32 阅读更多 →
光储充换电站双层优化模型与Matlab实现

光储充换电站双层优化模型与Matlab实现

1. 项目背景与核心价值光储充换电站作为新型能源基础设施,正在经历从单纯充电服务向综合能源服务节点的转型。这个项目的核心价值在于通过电价杠杆撬动用户行为,实现"电站-用户"双向优化。传统充电站运营中普遍存在两个痛点:一是光…

2026/10/15 8:24:32 阅读更多 →
Tailwind裁员背后:开源工具商业化与AI冲击的困境

Tailwind裁员背后:开源工具商业化与AI冲击的困境

1. 开源商业化的冰与火之歌:从Tailwind裁员看基础工具生态困境上周五,Tailwind Labs宣布裁员75%的消息在开发者社区炸开了锅。这个拥有7.4万GitHub星标的明星项目,曾用「实用优先」的CSS方法论改变了前端开发的工作流。我在2019年第一次接触T…

2026/10/15 8:24:32 阅读更多 →
数字电源控制器XDPP1100-Q024实战:从规格书到环路调参

数字电源控制器XDPP1100-Q024实战:从规格书到环路调参

简介:英飞凌XDPP1100-Q024中文版规格书手册是一份面向电源设计工程师、嵌入式开发及服务器/工业电源系统设计人员的技术文档。手册详细解析该芯片基于ARM Cortex-M0的100MHz处理器、64kB OTP、32kB RAM与80kB ROM配置,覆盖双电压轨控制、高速电压/电流检…

2026/10/15 8:23:32 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →