diff --git a/gpuutil/__main__.py b/gpuutil/__main__.py index e061b69..02ef1e7 100644 --- a/gpuutil/__main__.py +++ b/gpuutil/__main__.py @@ -1,6 +1,5 @@ -from gpuutil import GPUStat, loaddict +from gpuutil import GPUStat, loaddict, savedict import sys -import json import argparse import os @@ -22,8 +21,7 @@ def load_config(): def save_config(config): home_dir = os.path.expanduser('~') configdir = os.path.join(home_dir, '.gpuutil.conf') - with open(configdir, 'w+', encoding='utf-8') as f: - json.dump(config, f, ensure_ascii=False, indent=4) + savedict(configdir, config) # style format: |c|l:15|r|c:14rl:13| def parse_style(style): diff --git a/gpuutil/gpuutil.py b/gpuutil/gpuutil.py index e48cc85..21f192c 100644 --- a/gpuutil/gpuutil.py +++ b/gpuutil/gpuutil.py @@ -13,6 +13,9 @@ osname = platform.system() def loadfile(path): with open(path, 'r', encoding='utf-8') as f: return f.read() +def savefile(path, content): + with open(path, 'w+', encoding='utf-8') as f: + return f.write(content) def loaddict(path): content = loadfile(path) @@ -21,6 +24,9 @@ def loaddict(path): return json.loads(content) else: return {} +def savedict(path, dictionary): + content = json.dumps(dictionary, indent=4, ensure_ascii=False) + savefile(path, content) def exe_cmd(command): pipe = os.popen(command) diff --git a/gpuutil/set_redirect.py b/gpuutil/set_redirect.py index ad5b16c..d42ded0 100644 --- a/gpuutil/set_redirect.py +++ b/gpuutil/set_redirect.py @@ -1,6 +1,6 @@ import argparse import os -from gpuutil import loaddict +from gpuutil import loaddict, savedict availabel_name_trans = ['command', 'user', 'pid'] @@ -39,5 +39,4 @@ configuration['redirect'] = { "ps_name_trans": parsed_name_trans } -with open(config_file, 'w+', encoding='utf-8') as f: - f.write(json.dumps(configuration, ensure_ascii=False, indent=4)) \ No newline at end of file +savedict(config_file, configuration) \ No newline at end of file