格式化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"