将项目目录树字符串转换为JSON结构
Project description
tree2json
将树形目录结构转换为结构化的 JSON 格式。
tree2json 是一个轻量级 Python 工具,用于解析目录树格式的文本(例如 tree 命令的输出或自定义目录结构字符串),并将其转换为层次化的 JSON 结构,适用于可视化、自动化或结构分析任务。
📦 安装
从 PyPI 安装:
pip install tree2json
或克隆本地进行开发使用:
git clone https://github.com/Knighthood2001/tree2json.git
cd tree2json
pip install -e .
🧩 功能特色
- 支持解析纯文本目录树结构
- 支持多级嵌套的文件和文件夹
- 输出结构化 JSON,包含完整目录层级信息
🚀 快速使用
Python 示例
(PS:也可以查看tests/test.py)
from tree2json import Tree2Json
tree_str = """
.
├── data
│ ├── data.zip
│ └── results
├── README.md
└── utils
├── denoise.py
└── transforms.py
"""
converter = Tree2Json()
converter.from_string(tree_str)
json_str = converter.to_json_file("output.json") # 保存文件并返回字符串
输出示例
{
"level": 0,
"type": "dir",
"name": ".",
"description": "",
"child": [
{
"level": 1,
"type": "dir",
"name": "data",
"description": "",
"child": [
{
"level": 2,
"type": "file",
"name": "data.zip",
"description": "",
"child": []
},
{
"level": 2,
"type": "dir",
"name": "results",
"description": "",
"child": []
}
]
},
{
"level": 1,
"type": "file",
"name": "README.md",
"description": "",
"child": []
},
{
"level": 1,
"type": "dir",
"name": "utils",
"description": "",
"child": [
{
"level": 2,
"type": "file",
"name": "denoise.py",
"description": "",
"child": []
},
{
"level": 2,
"type": "file",
"name": "transforms.py",
"description": "",
"child": []
}
]
}
]
}
🔧 API 接口说明
Tree2Json(mode="auto")
mode:缩进识别模式(auto|step3|step4)
.from_string(tree_str)
从树状字符串中解析目录结构。
.to_dict()
以 Python 字典形式返回目录结构。
.to_json_file(path=None)
将结构保存为 JSON 文件(可选)。始终返回 JSON 字符串。
📄 许可证
本项目使用 MIT 开源许可证。
💬 问题反馈 & 贡献
欢迎在 issue 页面 提出问题或提交 PR!
TODO
- [√] 项目根目录的完善
- 适配更多类型的目录树
- [√] 将目录树注释提取出来,支持 ← # // -- 作为注释分隔符
版本
v0.1.0
- 初始版本
v0.1.1
- 调整了README.md
v0.1.2
- [√] 项目根目录的完善
v0.1.3
- 支持 ← # // -- 作为注释分隔符
v0.1.4
- 解决根目录结尾为/或者\的问题
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tree2json-0.1.4.tar.gz
(5.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tree2json-0.1.4.tar.gz.
File metadata
- Download URL: tree2json-0.1.4.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c98e141994c63f0e5deaa4c5ba8ec8369e9f9063e00238b7c226d83a9b154963
|
|
| MD5 |
eeeee6e972f3054ed0ca54e8a8abf0bd
|
|
| BLAKE2b-256 |
17f979e2e97dc11c91412c1749b9fafa708556850381b3d560ee85ab958d6534
|
File details
Details for the file tree2json-0.1.4-py3-none-any.whl.
File metadata
- Download URL: tree2json-0.1.4-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72e3c7f633f293ec75d5527d1cb645bf697598390c7fb34da07384fbab2b1773
|
|
| MD5 |
253414f91d9fe03024a5b018f1b70994
|
|
| BLAKE2b-256 |
33c263597ebbbcd7be3685dc5eeea5887021eebf053bce09c43f1e642a58e438
|