# File Reader

> 读取与摘要文本类文件（txt、md、json、yaml、csv、log、代码文件等）。PDF 与 Office 文件由专用技能处理。

- Skill: `mateaix/file-reader` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mateaix/file-reader`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mateaix/file-reader/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: mateaix (https://skillmd.com/u/mateaix)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mateaix/file-reader

---


# 文件读取

当用户要求读取或摘要本地文本文件时使用本技能。

**不在范围内**：PDF、Word (.docx)、Excel (.xlsx)、PPT (.pptx)、图片、音视频 — 这些由专用技能处理。

## 工作流程

### 第一步：类型探测（可选）

不确定文件类型时，先探测：

**macOS / Linux：**
```
execute_shell_command(command="file -b --mime-type \"/path/to/file\"")
```

**Windows：**
```
execute_shell_command(command="cmd /c \"echo %~x1\" & exit", timeoutSeconds=10)
```
或直接根据扩展名判断。

### 第二步：读取文件

```
read_file(filePath="/absolute/or/relative/path/to/file.txt")
```

读取特定行范围（大文件时）：
```
read_file(filePath="/path/to/large.log", startLine=1, endLine=200)
```

### 第三步：处理内容

根据文件类型采用对应策略：

| 类型 | 处理方式 |
|------|---------|
| `.txt` / `.md` | 直接摘要或按用户需求处理 |
| `.json` / `.yaml` | 先列出顶层键，再展开用户关注的字段 |
| `.csv` / `.tsv` | 展示表头 + 前 5 行，再描述各列含义和数据规模 |
| `.log` | 读取最后 200 行，聚焦错误/警告模式 |
| 源代码 | 说明文件作用，摘要核心逻辑，不逐行复述 |

## 大文件策略

文件超过 500 行时分段读取：

```
# 先读前 100 行了解结构
read_file(filePath="/path/to/big.log", startLine=1, endLine=100)

# 再读末尾 200 行看最新内容
read_file(filePath="/path/to/big.log", startLine=-200)
```

日志文件也可用系统命令读取末尾：

**macOS / Linux：**
```
execute_shell_command(command="tail -n 200 \"/path/to/file.log\"")
```

**Windows：**
```
execute_shell_command(command="powershell Get-Content -Tail 200 \"/path/to/file.log\"")
```

## 跨平台路径注意事项

- **Windows**：路径使用反斜杠 `\` 或正斜杠 `/` 均可，但含空格时须加引号
- **macOS / Linux**：使用正斜杠 `/`，含空格时须加引号或转义

## 安全规范

- 只读取文件，不执行其内容
- 优先读取所需的最小部分，避免加载超大文件到上下文
- 如文件包含敏感信息（密码、密钥），提醒用户注意但不拒绝读取

