57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
|
|
import json
|
||
|
|
import os
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
|
||
|
|
class ParamsManager:
|
||
|
|
|
||
|
|
def __init__(self, params_dir='params'):
|
||
|
|
self.params_dir = params_dir
|
||
|
|
self._ensure_dir_exists()
|
||
|
|
|
||
|
|
def _ensure_dir_exists(self):
|
||
|
|
Path(self.params_dir).mkdir(parents=True, exist_ok=True)
|
||
|
|
|
||
|
|
def save(self, params, filename):
|
||
|
|
if not filename.endswith('.json'):
|
||
|
|
filename = filename + '.json'
|
||
|
|
|
||
|
|
filepath = os.path.join(self.params_dir, filename)
|
||
|
|
|
||
|
|
with open(filepath, 'w', encoding='utf-8') as f:
|
||
|
|
json.dump(params, f, indent=2, ensure_ascii=False)
|
||
|
|
|
||
|
|
def load(self, filename):
|
||
|
|
if not filename.endswith('.json'):
|
||
|
|
filename = filename + '.json'
|
||
|
|
|
||
|
|
filepath = os.path.join(self.params_dir, filename)
|
||
|
|
|
||
|
|
with open(filepath, 'r', encoding='utf-8') as f:
|
||
|
|
params = json.load(f)
|
||
|
|
return params
|
||
|
|
|
||
|
|
def save_multiple(self, params_dict):
|
||
|
|
filepaths = []
|
||
|
|
for filename, params in params_dict.items():
|
||
|
|
filepath = self.save(params, filename)
|
||
|
|
filepaths.append(filepath)
|
||
|
|
return filepaths
|
||
|
|
|
||
|
|
def load_multiple(self, filenames):
|
||
|
|
result = {}
|
||
|
|
for filename in filenames:
|
||
|
|
result[filename] = self.load(filename)
|
||
|
|
return result
|
||
|
|
|
||
|
|
# from ParamsManager import ParamsManager
|
||
|
|
|
||
|
|
# # 创建参数管理器实例
|
||
|
|
# pm = ParamsManager('params') # 参数保存在 params 文件夹中
|
||
|
|
|
||
|
|
# # 保存单个参数
|
||
|
|
# pm.save(params, 'AWG_NCO') # 自动添加 .json 后缀
|
||
|
|
|
||
|
|
# # 加载单个参数
|
||
|
|
# params = pm.load('AWG_NCO')
|