orcaslicer/resources/profiles/check_duplicated_setting_id.py
xun.zhang 12eec78d1d ENH: add profiles for creality CR6
Thanks bhast2 ,these profiles are based on his original version.

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I23dbb7d8b80b8fc37ecd76c44bf1c547413bc434
(cherry picked from commit 4a58cee3ff08fcd5f542a7779f3a1dfad46a4509)
2023-07-31 14:29:15 +08:00

44 lines
No EOL
1.5 KiB
Python

#by chatGPT
import os
import json
# 定义一个空列表,用于存储所有的 setting_id
setting_id_values = []
# 定义递归函数
def traverse_files(path):
for file in os.listdir(path):
file_path = os.path.join(path, file)
if os.path.isdir(file_path):
traverse_files(file_path) # 递归遍历子文件夹
elif file_path.endswith('.json'):
# 解析 JSON 文件并提取 setting_id 的值
with open(file_path) as f:
try:
data = json.load(f)
if 'setting_id' in data:
setting_id = data['setting_id']
if isinstance(setting_id, str):
setting_id_values.append(setting_id)
#print(f"Found setting_id value: {setting_id}")
except (KeyError, json.JSONDecodeError):
pass
# 从当前目录开始遍历
traverse_files('.')
from collections import Counter
# 统计每个 setting_id 出现的次数
setting_id_counts = Counter(setting_id_values)
# 找出出现次数大于 1 的 setting_id
duplicated_setting_ids = [setting_id for setting_id, count in setting_id_counts.items() if count > 1]
# 输出重复的 setting_id
if len(duplicated_setting_ids) > 0:
print("Found duplicated setting_id values:")
for setting_id in duplicated_setting_ids:
print(setting_id)
else:
print("No duplicated setting_id values.")