Encrypted File Writer - 加密文件写入器
写入内容到本地加密/受保护的文件,支持企业安全策略环境
功能特性
- 多格式支持: 80+ 种文件类型(文本、代码、配置、Office 文档)
- 编码安全: 自动使用 UTF-8 编码,避免乱码问题
- 企业兼容: 支持企业安全策略环境下的授权文件写入
- 灵活模式: 支持覆盖写入和追加模式
- 标准输入: 支持从管道或标准输入读取内容
- 目录自动创建: 目标目录不存在时自动创建
- Office 支持: 直接创建/编辑 .docx 和 .xlsx(无需安装 Office)
激活条件
当用户提到以下关键词时激活:
- "写入文件"
- "保存文件"
- "创建文件"
- "写入加密文件"
- "保存受保护的文件"
- "写入内容到文件"
- "避免乱码写入"
- "企业安全策略写入"
- "写入 docx/xlsx 文件"
使用方法
通过 exec 工具调用
# 覆盖写入
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" "内容"
# 追加写入
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" "内容" --append
# 从标准输入读取
echo "内容" | python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" --stdin
# 指定编码
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" "内容" --encoding gbk
示例
# 写入文本文件
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\data\test.txt" "Hello World"
# 写入日志(追加模式)
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\logs\app.log" "2026-03-08 10:00:00 - 系统启动" --append
# 写入代码文件
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "D:\project\main.py" "print('Hello')"
# 写入配置文件
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "D:\config\app.json" "{\"name\": \"test\"}"
# 写入 Word 文档
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\docs\report.docx" "第一行内容"
# 追加到 Word 文档
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\docs\report.docx" "追加内容" --append
# 写入 Excel 文件(CSV 格式)
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\data\data.xlsx" "姓名,年龄,城市
张三,25,北京
李四,30,上海"
# 从管道写入
echo "多行内容" | python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\data\input.txt" --stdin
在 OpenClaw 中使用
# 写入文件并获取结果
exec:
command: python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" "内容"
支持的文件格式
| 类型 |
扩展名 |
写入方式 |
| 文本类 |
.txt, .md, .markdown, .rst, .log, .csv, .tsv |
UTF-8 文本写入 |
| 代码类 |
.java, .py, .js, .ts, .jsx, .tsx, .c, .cpp, .h, .cs, .go, .rs, .rb, .php, .vue |
UTF-8 文本写入 |
| 配置类 |
.json, .xml, .yaml, .yml, .toml, .ini, .cfg, .properties, .gradle, .config, .env |
UTF-8 文本写入 |
| 样式类 |
.html, .htm, .css, .scss, .sass, .less |
UTF-8 文本写入 |
| 脚本类 |
.sh, .bash, .bat, .cmd, .ps1, .sql |
UTF-8 文本写入 |
| Office |
.docx (Word), .xlsx (Excel) |
OpenXML ZIP 格式写入 |
写入模式
| 模式 |
参数 |
说明 |
| 覆盖写入 |
(默认) |
如果文件存在则覆盖,不存在则创建 |
| 追加写入 |
--append 或 -a |
在文件末尾追加内容 |
追加模式行为
- 文本文件: 直接在文件末尾追加字节
- .docx 文件: 在文档末尾添加新段落
- .xlsx 文件: 在表格末尾添加新行
编码选项
| 编码 |
参数 |
适用场景 |
| UTF-8 |
(默认) |
推荐,国际通用编码 |
| GBK |
--encoding gbk |
中文 Windows 系统兼容 |
| GB2312 |
--encoding gb2312 |
简体中文旧文件 |
| Latin-1 |
--encoding latin1 |
西欧语言文件 |
技术原理
| 文件类型 |
处理方式 |
| 文本文件 |
内容先编码为 UTF-8 字节,再以二进制模式写入,避免编码转换问题 |
| Word (.docx) |
使用 zipfile 创建/修改 OpenXML 格式,在 document.xml 中添加段落 |
| Excel (.xlsx) |
使用 zipfile 创建/修改 OpenXML 格式,生成 sharedStrings 和 worksheet |
.docx 写入细节
- 创建新文件: 生成最小 OpenXML 结构([Content_Types].xml, _rels/, word/document.xml)
- 追加内容: 解压读取 document.xml,在
</w:body> 前插入新段落,重新打包
.xlsx 写入细节
- 创建新文件: 生成最小 OpenXML 结构(workbook.xml, worksheets/, sharedStrings.xml)
- 数据格式: 支持 CSV 格式输入(逗号或制表符分隔)
- 字符串处理: 自动去重并构建共享字符串表
依赖要求
- Python 3.x(仅需标准库:sys, os, argparse, zipfile, shutil, tempfile, datetime, re, io, json)
- 无需安装额外依赖
输出格式
成功输出:
[OK] 成功写入 XXX 字节到:文件路径
FILE_PATH=文件路径
BYTES_WRITTEN=字节数
失败输出:
[ERROR] 错误信息
使用场景
1. 日志记录
python write_file.py "E:\logs\app.log" "[INFO] 操作完成" --append
2. 配置文件更新
python write_file.py "D:\config\settings.json" "{\"debug\": true}"
3. 代码生成
python write_file.py "D:\project\output.py" "def main():\n print('Hello')"
4. Word 文档创建/编辑
# 创建新文档
python write_file.py "E:\docs\report.docx" "报告标题
报告内容第一行
报告内容第二行"
# 追加到现有文档
python write_file.py "E:\docs\report.docx" "新增段落" --append
5. Excel 数据导出
python write_file.py "E:\exports\data.xlsx" "姓名,年龄,城市
张三,25,北京
李四,30,上海"
6. 临时文件创建
python write_file.py "C:\temp\task_123.txt" "任务数据..."
注意事项
⚠️ 重要说明:
- 本工具仅写入用户有权限访问的本地文件
- 不支持绕过合法的文件访问控制
- 适用于企业环境中授权的文件写入场景
- 默认使用 UTF-8 编码,如需其他编码请指定
--encoding 参数
- 写入前会自动创建不存在的目录
- .docx/.xlsx 使用 OpenXML 标准格式,兼容 Microsoft Office 和 LibreOffice
⚠️ Office 文件限制:
- .docx 追加模式会在文档末尾添加新段落,不保留原有格式
- .xlsx 追加模式会重新构建整个文件,适合小数据量场景
- 复杂格式(样式、公式、图表)需要专用库(python-docx/openpyxl)
与 encrypted-file-reader 配合使用
# 读取 Word 文档
python D:\ai\workspace\skills\encrypted-file-reader\read_file.py "E:\docs\report.docx"
# 修改内容后写回
python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\docs\report.docx" "新内容" --append
法律说明
- 本工具仅用于向用户有合法访问权限的本地文件写入内容
- 不支持绕过任何合法的文件访问控制或权限管理
- 用户应确保使用本工具符合所在组织的政策和法律法规
- 本工具通过标准的文件写入 API 操作,不涉及任何安全绕过
版本
| 版本 |
日期 |
变更 |
| 1.0.0 |
2026-03-08 |
初始版本,支持文本/代码/配置文件写入,UTF-8 编码保护 |
| 1.1.0 |
2026-03-09 |
新增 .docx 和 .xlsx 写入支持,与 encrypted-file-reader 格式保持一致 |
1---2name: encrypted-file-writer3description: 写入内容到本地加密/受保护的文件,支持企业安全策略环境。支持文本文件、Word 文档 (.docx)、Excel 表格 (.xlsx) 等 80+ 种格式,通过正确的编码处理避免乱码问题。4---56# Encrypted File Writer - 加密文件写入器78> 写入内容到本地加密/受保护的文件,支持企业安全策略环境910## 功能特性1112- **多格式支持**: 80+ 种文件类型(文本、代码、配置、Office 文档)13- **编码安全**: 自动使用 UTF-8 编码,避免乱码问题14- **企业兼容**: 支持企业安全策略环境下的授权文件写入15- **灵活模式**: 支持覆盖写入和追加模式16- **标准输入**: 支持从管道或标准输入读取内容17- **目录自动创建**: 目标目录不存在时自动创建18- **Office 支持**: 直接创建/编辑 .docx 和 .xlsx(无需安装 Office)1920---2122## 激活条件2324当用户提到以下关键词时激活:25- "写入文件"26- "保存文件"27- "创建文件"28- "写入加密文件"29- "保存受保护的文件"30- "写入内容到文件"31- "避免乱码写入"32- "企业安全策略写入"33- "写入 docx/xlsx 文件"3435---3637## 使用方法3839### 通过 exec 工具调用4041```bash42# 覆盖写入43python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" "内容"4445# 追加写入46python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" "内容" --append4748# 从标准输入读取49echo "内容" | python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" --stdin5051# 指定编码52python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" "内容" --encoding gbk53```5455### 示例5657```bash58# 写入文本文件59python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\data\test.txt" "Hello World"6061# 写入日志(追加模式)62python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\logs\app.log" "2026-03-08 10:00:00 - 系统启动" --append6364# 写入代码文件65python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "D:\project\main.py" "print('Hello')"6667# 写入配置文件68python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "D:\config\app.json" "{\"name\": \"test\"}"6970# 写入 Word 文档71python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\docs\report.docx" "第一行内容"7273# 追加到 Word 文档74python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\docs\report.docx" "追加内容" --append7576# 写入 Excel 文件(CSV 格式)77python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\data\data.xlsx" "姓名,年龄,城市78张三,25,北京79李四,30,上海"8081# 从管道写入82echo "多行内容" | python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\data\input.txt" --stdin83```8485### 在 OpenClaw 中使用8687```yaml88# 写入文件并获取结果89exec:90 command: python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "文件路径" "内容"91```9293---9495## 支持的文件格式9697| 类型 | 扩展名 | 写入方式 |98|------|--------|----------|99| **文本类** | .txt, .md, .markdown, .rst, .log, .csv, .tsv | UTF-8 文本写入 |100| **代码类** | .java, .py, .js, .ts, .jsx, .tsx, .c, .cpp, .h, .cs, .go, .rs, .rb, .php, .vue | UTF-8 文本写入 |101| **配置类** | .json, .xml, .yaml, .yml, .toml, .ini, .cfg, .properties, .gradle, .config, .env | UTF-8 文本写入 |102| **样式类** | .html, .htm, .css, .scss, .sass, .less | UTF-8 文本写入 |103| **脚本类** | .sh, .bash, .bat, .cmd, .ps1, .sql | UTF-8 文本写入 |104| **Office** | .docx (Word), .xlsx (Excel) | OpenXML ZIP 格式写入 |105106---107108## 写入模式109110| 模式 | 参数 | 说明 |111|------|------|------|112| **覆盖写入** | (默认) | 如果文件存在则覆盖,不存在则创建 |113| **追加写入** | `--append` 或 `-a` | 在文件末尾追加内容 |114115### 追加模式行为116117- **文本文件**: 直接在文件末尾追加字节118- **.docx 文件**: 在文档末尾添加新段落119- **.xlsx 文件**: 在表格末尾添加新行120121---122123## 编码选项124125| 编码 | 参数 | 适用场景 |126|------|------|----------|127| **UTF-8** | (默认) | 推荐,国际通用编码 |128| **GBK** | `--encoding gbk` | 中文 Windows 系统兼容 |129| **GB2312** | `--encoding gb2312` | 简体中文旧文件 |130| **Latin-1** | `--encoding latin1` | 西欧语言文件 |131132---133134## 技术原理135136| 文件类型 | 处理方式 |137|----------|----------|138| **文本文件** | 内容先编码为 UTF-8 字节,再以二进制模式写入,避免编码转换问题 |139| **Word (.docx)** | 使用 zipfile 创建/修改 OpenXML 格式,在 document.xml 中添加段落 |140| **Excel (.xlsx)** | 使用 zipfile 创建/修改 OpenXML 格式,生成 sharedStrings 和 worksheet |141142### .docx 写入细节1431441. **创建新文件**: 生成最小 OpenXML 结构([Content_Types].xml, _rels/, word/document.xml)1452. **追加内容**: 解压读取 document.xml,在 `</w:body>` 前插入新段落,重新打包146147### .xlsx 写入细节1481491. **创建新文件**: 生成最小 OpenXML 结构(workbook.xml, worksheets/, sharedStrings.xml)1502. **数据格式**: 支持 CSV 格式输入(逗号或制表符分隔)1513. **字符串处理**: 自动去重并构建共享字符串表152153---154155## 依赖要求156157- Python 3.x(仅需标准库:sys, os, argparse, zipfile, shutil, tempfile, datetime, re, io, json)158- **无需安装额外依赖**159160---161162## 输出格式163164**成功输出**:165```166[OK] 成功写入 XXX 字节到:文件路径167FILE_PATH=文件路径168BYTES_WRITTEN=字节数169```170171**失败输出**:172```173[ERROR] 错误信息174```175176---177178## 使用场景179180### 1. 日志记录181```bash182python write_file.py "E:\logs\app.log" "[INFO] 操作完成" --append183```184185### 2. 配置文件更新186```bash187python write_file.py "D:\config\settings.json" "{\"debug\": true}"188```189190### 3. 代码生成191```bash192python write_file.py "D:\project\output.py" "def main():\n print('Hello')"193```194195### 4. Word 文档创建/编辑196```bash197# 创建新文档198python write_file.py "E:\docs\report.docx" "报告标题199报告内容第一行200报告内容第二行"201202# 追加到现有文档203python write_file.py "E:\docs\report.docx" "新增段落" --append204```205206### 5. Excel 数据导出207```bash208python write_file.py "E:\exports\data.xlsx" "姓名,年龄,城市209张三,25,北京210李四,30,上海"211```212213### 6. 临时文件创建214```bash215python write_file.py "C:\temp\task_123.txt" "任务数据..."216```217218---219220## 注意事项221222⚠️ **重要说明**:223- 本工具仅写入用户有权限访问的本地文件224- 不支持绕过合法的文件访问控制225- 适用于企业环境中授权的文件写入场景226- 默认使用 UTF-8 编码,如需其他编码请指定 `--encoding` 参数227- 写入前会自动创建不存在的目录228- .docx/.xlsx 使用 OpenXML 标准格式,兼容 Microsoft Office 和 LibreOffice229230⚠️ **Office 文件限制**:231- .docx 追加模式会在文档末尾添加新段落,不保留原有格式232- .xlsx 追加模式会重新构建整个文件,适合小数据量场景233- 复杂格式(样式、公式、图表)需要专用库(python-docx/openpyxl)234235---236237## 与 encrypted-file-reader 配合使用238239```bash240# 读取 Word 文档241python D:\ai\workspace\skills\encrypted-file-reader\read_file.py "E:\docs\report.docx"242243# 修改内容后写回244python D:\ai\workspace\skills\encrypted-file-writer\write_file.py "E:\docs\report.docx" "新内容" --append245```246247---248249## 法律说明250251- 本工具仅用于向用户有合法访问权限的本地文件写入内容252- 不支持绕过任何合法的文件访问控制或权限管理253- 用户应确保使用本工具符合所在组织的政策和法律法规254- 本工具通过标准的文件写入 API 操作,不涉及任何安全绕过255256---257258## 版本259260| 版本 | 日期 | 变更 |261|------|------|------|262| 1.0.0 | 2026-03-08 | 初始版本,支持文本/代码/配置文件写入,UTF-8 编码保护 |263| 1.1.0 | 2026-03-09 | 新增 .docx 和 .xlsx 写入支持,与 encrypted-file-reader 格式保持一致 |