Skip to main content

Convert tree-style text structure into JSON format

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

  • 支持 ← # // -- 作为注释分隔符

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.3.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tree2json-0.1.3-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file tree2json-0.1.3.tar.gz.

File metadata

  • Download URL: tree2json-0.1.3.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.2

File hashes

Hashes for tree2json-0.1.3.tar.gz
Algorithm Hash digest
SHA256 95d0426706802c891add39c58ed512bc67ffabe442051ae3597329d3198b912c
MD5 fab3d0e94deec8c8ea7a3c6802442f90
BLAKE2b-256 6f9d6c8ed24ff6d3ca55de908683333300b41e1e3abe29ae3925f96aae1e5f2f

See more details on using hashes here.

File details

Details for the file tree2json-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: tree2json-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.2

File hashes

Hashes for tree2json-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 70d2c72b2f3cc00e96d371bc008a9dff6852fc0434ebd70eb6ad7e06c6e441ef
MD5 ac2b66e1b7ccd20032a0fc0970383cba
BLAKE2b-256 722eb03fa08fe26dd98e803d74093e0e471d0796ea4ae6142d4c088e8b195c4f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page