其他分享
首页 > 其他分享> > VSCode的settings.json整理

VSCode的settings.json整理

作者:互联网

强迫症看着settings.json里的内容表示很头疼,所以写了个简单的脚本升序排序
注:如果settings.json中没有注释内容,可以将代码中的json5都改成json
如果有注释内容,那排序后注释就没了[emoj]。需pip install json5

import json
import json5
import os

# ********** 需修改 dir_(默认路径好像是 C:\User\用户名\.vscode\userdata\User 下)
print('开始settings.json排序')
dir_ = r'D:\Develop\Microsoft Visual Studio Code\userdata\User'
src_name = "settings.json"  # 源文件名
new_name = "settings_.json"  # 新文件
old_name = "settings_old.json"  # 源文件重命名

src_file = os.path.join(dir_, src_name)
new_file = os.path.join(dir_, new_name)
old_file = os.path.join(dir_, old_name)

# 读取源文件内容
with open(src_file, 'r', encoding='utf-8') as f:
    text = json5.load(f)
    
# print(type(text))

def to_lower(req_list:list):
    # 统一大小写
    lower_upper = {}  # key: 处理后的字符串,value: 处理前的字符串
    res_list = []
    for t in req_list:
        new_t = t.lower()
        res_list.append(new_t)  # 全部转为小写字母
        lower_upper[new_t] = t
    return res_list, lower_upper 

def my_sorted(dic:dict):
    # 递归对每一层排序
    # 循环判断某个key对应的value是否为dict,是的话先进行里层排序
    for k, v in dic.items():
        if type(v) == dict:
            dic[k] = my_sorted(v)
    # 排序:
    # 1. 对key排序
    key_list, lower_upper = to_lower(list(dic.keys()))
    key_list.sort()
    # 2. 按key_list顺序重新构建dict
    new_dic = {lower_upper[k]: dic[lower_upper[k]] for k in key_list}

    return new_dic

# 排序
text = my_sorted(text)

# 将排序后的json内容写入新文件
json_text = json.dumps(text)
with open(new_file, 'w', encoding='utf-8') as f:
    f.write(json_text)

# 重命名源文件为 settings_old.json,新文件为 settings.json
# 如果已存在 settings_old.json,先删除
if os.path.exists(old_file):
    os.remove(old_file)
os.rename(src_file, old_file)
os.rename(new_file, src_file)
print('settings.json排序完毕')

效果:

标签:old,settings,VSCode,list,json,file,new
来源: https://www.cnblogs.com/Fission0102/p/16572852.html