SKILL.md 2.09 KB

name: l1-file-read description: "L1 原子技能:文件内容读取。支持读取 PDF、Excel、CSV、JSON、Markdown 等常见格式并转为纯文本。" layer: 1 domain: sensing keywords:

  • file
  • read
  • pdf
  • excel
  • csv
  • parse input_schema: "{ file_path: string }" output_schema: "{ content: string, format: string, size: number }" ---

L1: File Read(文件读取原子技能)

能力

读取本地文件内容,支持多种格式,统一输出为纯文本。

使用方法

纯文本 / Markdown / JSON / YAML

cat "<file_path>"

CSV → 表格文本

python3 -c "
import csv, sys
with open(sys.argv[1], 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        print(' | '.join(row))
" "<file_path>"

Excel (.xlsx)

python3 -c "
import sys
try:
    import openpyxl
    wb = openpyxl.load_workbook(sys.argv[1], read_only=True)
    for sheet in wb.sheetnames:
        ws = wb[sheet]
        print(f'=== Sheet: {sheet} ===')
        for row in ws.iter_rows(max_row=100, values_only=True):
            print(' | '.join(str(c) if c is not None else '' for c in row))
except ImportError:
    print('ERROR: openpyxl not installed. Run: pip3 install openpyxl')
" "<file_path>"

PDF → 纯文本

python3 -c "
import sys
try:
    import PyPDF2
    with open(sys.argv[1], 'rb') as f:
        reader = PyPDF2.PdfReader(f)
        for i, page in enumerate(reader.pages[:20]):
            text = page.extract_text()
            if text: print(f'--- Page {i+1} ---\n{text}')
except ImportError:
    import subprocess
    result = subprocess.run(['strings', sys.argv[1]], capture_output=True, text=True)
    print(result.stdout[:5000])
" "<file_path>"

输入

参数 类型 必填 说明
file_path string ✅ 本地文件路径

输出

文件内容的纯文本表示,截取前 5000 字符。

约束

  • 最大读取行数:100 行(Excel)或 20 页(PDF)
  • 不支持加密/密码保护的文件
  • 二进制文件(图片、视频)返回"不支持的文件格式"