返回 Skill 列表
extension
分类: 开发与工程无需 API Key

archive-extractor

递归解压文件或目录中的压缩包,支持 zip、tar、tar.gz、tar.bz2、tar.xz、tgz、rar、7z、gz、bz2、xz。适用于 Windows、Linux、macOS 等平台。

person作者: qiliangzhao20241028hubclawhub

Archive Extractor

Extracts archives recursively using scripts/extract.py.

Zero local-software dependency — works on any machine with Python 3.8+.
.rar and .7z formats use pure-Python libraries (rarfile, py7zr) that are auto-installed on first use via pip. No 7-Zip, WinRAR, or unrar binary needed.

How to run

python scripts/extract.py <PATH> [OPTIONS]

Always use the absolute path to the script when calling from a different working directory:

# Windows
python "C:\Users\<user>\.workbuddy\skills\archive-extractor\scripts\extract.py" "<PATH>"

# Linux / macOS
python ~/.workbuddy/skills/archive-extractor/scripts/extract.py "<PATH>"

Options

| Flag | Description | |------|-------------| | -f / --force | Re-extract even if a .extracted_success marker already exists | | -d DIR / --dest DIR | Write all output under a custom root directory |

Supported formats

| Format | Backend | |--------|---------| | .zip | Python stdlib zipfile | | .tar .tar.gz .tar.bz2 .tar.xz .tgz .tbz2 | Python stdlib tarfile | | .gz .bz2 .xz (single-file) | Python stdlib gzip / bz2 / lzma | | .rar | rarfile (pure-Python, auto-installed) | | .7z | py7zr (pure-Python, auto-installed) |

Key behaviours

  • Idempotent: skips archives that already have a .extracted_success marker; use -f to override.
  • Recursive: after extracting an archive, immediately scans the output for nested archives (up to 20 levels deep).
  • Auto-deps: rarfile and py7zr are installed automatically via pip on first use — no manual setup needed.
  • Fault-tolerant: corrupted or unsupported archives are logged as [FAIL] and skipped; remaining archives continue.

Examples

# Extract everything in a directory (including sub-archives)
python extract.py "D:\jira\TICKET-123"

# Force clean re-extraction of a single file
python extract.py report.zip -f

# Extract to a separate output folder
python extract.py "D:\jira\TICKET-123" -d "D:\extracted"

# Glob pattern — extract all zips in current directory
python extract.py "*.zip"