ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

格式化toml脚本

2022-01-26 15:04:25  阅读:198  来源: 互联网

标签:脚本 格式化 url content toml new input your


格式化toml脚本

# encoding=utf-8
import os


def traverse_folder(folder, only_first=False):
    folder = os.path.abspath(folder)
    all_files = []
    all_dirs = []
    if os.path.isdir(folder):
        for root, dirs, files in os.walk(folder):
            for one_file in files:
                all_files.append(os.path.join(root, one_file))  # 所有文件
            for one_dir in dirs:
                all_dirs.append(os.path.join(root, one_dir))  # 所有文件夹
            if only_first:
                break
    else:
        msg = 'Can not find folder:{} for traverse'.format(folder)
        print(msg)
    return all_dirs, all_files


def format_toml(filename):
    with open(filename, "r") as f:
        content = f.readlines()

    strip_content = []
    for info in content:
        if info.strip() != "":
            strip_content.append(info.strip())

    new_content = []
    last_count = ""
    for line in strip_content:
        if line.strip().startswith("[") and line.strip().endswith("]"):

            count = line.count(".")
            last_count = "    " * count
            new_line = "    " * count + line

            new_content.append(new_line)
        else:
            if line.strip() != "":
                new_content.append(last_count + "    " + line)
            else:
                new_content.append(line)

    new_content = list(map(lambda x: x + "\n", new_content))

    for index, line in enumerate(new_content):
        if line.strip().startswith("[") and line.strip().endswith("]") and index - 1 > 0 and not (
                new_content[index - 1].strip().startswith("[") and new_content[index - 1].strip().endswith("]")):
            new_content[index - 1] = new_content[index - 1] + "\n"

    with open(toml_file, "w") as f:
        f.writelines(new_content)
    abs_filename = os.path.abspath(toml_file)
    print(f"success format file:{abs_filename}")


if __name__ == '__main__':
    toml_files = []
    _, files = traverse_folder(".")
    for file in files:
        if file.lower().endswith(".toml"):
            toml_files.append(file)
    for toml_file in toml_files:
        format_toml(toml_file)

toml样例

[basic]
    # validation 校验器错误信息语言
    language = "zh"

[redis]
    host = "127.0.0.1"
    port = 6379
    db = 5
    password = "000000"
    max_idle = 6
    max_active = 10
    idle_timeout = 60

[xxx]
    [xxx.u]
        host = "127.0.0.1"
        authorization = "input your token

[qqq]
    [qqq.r]
        url = "input your url
        token = "input your token

    [qqq.r2]
        url = "input your url
        token = "input your token

[ttt]
    url = 'input your url

[ppp]
    url = "input your url
    token = "2222wfafesaf"

[api]
    [api.image]
        url = "input your url

    [api.a]
        url = "input your url
        authorId = "wrsfsf"

    [api.b]
        url = "input your url
        authorId = "scsdgsc"

    [api.c]
        url = "input your url
        token = "input your token

    [api.d]
        url = "input your url
        token = "input your token

[domain]
    #WWWFWF
    url = "input your url

[log]
    logLevel = "INFO"
    logPath = "/logs/adfa"

标签:脚本,格式化,url,content,toml,new,input,your
来源: https://www.cnblogs.com/rainbow-tan/p/15846528.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有