Install
openclaw skills install @qq435912743/archive-smart-reader智能压缩文件阅读器。直接读取zip/tar/gz/tgz/bz2/xz/7z/rar 等压缩包的内容:列出文件清单、预览内部文件内容、 提取单个文件或全部解压、搜索压缩包内文件。 支持图片压缩包直接读取显示。每次使用自动学习改进。 触发词:压缩包、zip文件、解压、tar包、读压缩文件、archive、查看压缩包。
openclaw skills install @qq435912743/archive-smart-readerWorkBuddy 无法直接读取 zip/tar/rar 等压缩包里的文件。每次收到 压缩包都需要手动解压后再操作,非常麻烦。
本技能让你能:
| 格式 | 支持级别 | 说明 |
|---|---|---|
| .zip | ⭐⭐⭐ 完整 | 列表/预览/提取/搜索 |
| .tar | ⭐⭐⭐ 完整 | 列表/预览/提取 |
| .tar.gz / .tgz | ⭐⭐⭐ 完整 | 列表/预览/提取 |
| .tar.bz2 (.bz2) | ⭐⭐⭐ 完整 | 列表/预览/提取 |
| .tar.xz (.xz) | ⭐⭐⭐ 完整 | 列表/预览/提取 |
| .7z | ⭐⭐ 基础 | 安装 py7zr 后全支持 |
| .rar | ⭐⭐ 基础 | 列出文件无需外部工具;预览/提取需本机 unrar 或 7-Zip(脚本自动查找 Downloads/WorkBuddy/Claw 等位置) |
本技能每次使用都会自动记录和改进:
路径:~/.workbuddy/skills/archive-smart-reader/learned_patterns.json
{
"version": 1,
"totalOps": 0,
"formatStats": {
".zip": {"count": 0, "totalFiles": 0},
".tar.gz": {"count": 0, "totalFiles": 0}
},
"errorPatterns": {
"password_protected": {"count": 0, "lastPath": ""},
"corrupted_zip": {"count": 0, "lastPath": ""}
},
"optimizations": {
"preferTempDir": true,
"autoCleanup": true,
"previewLimit": 50000
}
}
| 学习维度 | 具体内容 |
|---|---|
| 📊 格式统计 | 哪种格式用得最多 → 优先优化 |
| ❌ 错误模式 | 常见错误是什么 → 下次提前预警 |
| ⚡ 性能优化 | 大文件处理时间 → 自动调整策略 |
| 🧠 用户偏好 | 喜欢预览还是提取 → 优先推荐 |
用户输入:"帮我看看这个report.zip里有什么"
操作:
python scripts/archive_reader.py list report.zip
输出:
📁 src/
📄 src/main.py (12,345 bytes)
📄 src/utils.py (8,921 bytes)
📁 docs/
📄 docs/README.md (3,102 bytes)
📄 data.csv (45,678 bytes)
━━━━━━━━━━━━━━━━━━━━━━━━━
总计:4个文件,2个文件夹,约70KB
用户输入:"看看data.csv的内容"
操作:
python scripts/archive_reader.py peek report.zip data.csv
输出:CSV文件前50行内容(智能限制,大文件自动截取)
用户输入:"这个zip里有没有关于报告的PDF?"
操作:列出所有文件 → 按文件名/扩展名/大小过滤
→ 找到匹配项后询问是否需要预览
用户输入:"把里面的图片都提取出来放在桌面上"
操作:
1. 列出压缩包内容 → 筛选出图片文件(.jpg/.png/.gif)
2. 逐个提取到指定目录
3. 汇报提取结果
自动识别压缩包格式,即使没有扩展名也能通过文件头判断:
| 文件头 | 格式 |
|---|---|
| PK\x03\x04 | ZIP |
| \x1f\x8b | GZIP |
| 75\x73\x74\x61r | TAR |
| Rar! | RAR |
| 7z\xbc\xaf | 7z |
# 伪代码
学习数据.总操作数 += 1
学习数据.格式统计[检测到的格式]["次数"] += 1
if 操作成功:
学习数据.格式统计[格式]["成功率"] 更新
else:
学习数据.错误模式[错误类型]["次数"] += 1
# 如果某错误出现≥3次,自动添加预检步骤
if 学习数据.错误模式[错误类型]["次数"] >= 3:
启用该格式的预检机制
# 自动优化策略
if 学习数据.总操作数 >= 10:
分析哪些格式用得少 → 按需加载库,减少启动时间
if 某格式失败率 > 30%:
尝试安装替代库
当遇到 7z/rar 格式时,自动尝试安装支持库:
pip install py7zr # 7z支持
pip install rarfile # RAR支持
安装成功后自动更新学习记忆,下次遇到同格式直接处理。
用户输入:"[拖拽或提供路径]这个zip里有什么"
→ 自动检测格式
→ 列出文件树(目录在前、文件在后、按大小排序)
→ 询问是否需要进一步操作(预览/提取)
用户输入:"帮我看看里面的config.json"
→ 自动找到压缩包
→ 定位到 config.json
→ 读取内容(文本)并显示
→ 大文件自动取前50000字符
→ 标记剩余行数
用户输入:"全部解压到当前目录"
→ 解压到指定目录
→ 汇报文件数量和路径
→ 自动清理临时文件(如果用了临时目录)
→ 记录本次操作到学习记忆
本技能附带 Python 脚本 scripts/archive_reader.py:
# 列出内容
python scripts/archive_reader.py list <压缩包路径>
# 预览文件
python scripts/archive_reader.py peek <压缩包路径> <内部文件路径>
# 全部解压
python scripts/archive_reader.py extract <压缩包路径> <输出目录>
# 提取单个文件
python scripts/archive_reader.py extract-file <压缩包> <内部路径> <输出路径>