def main(): parser = ArgumentParser() parser.add_argument('-i', dest='src', default=None, action='store', type=str, required=True, help='input file') parser.add_argument('-o', dest='dst', default=None, action='store', type=str, required=True, help='output file') ns = parser.parse_args() if exists(ns.dst): return print('{} already exists, do nothing.'.format(ns.dst)) with open(ns.src, mode='rt') as f: configdata = ConfigObj(f, configspec=defaults_to_configspec()) validator = Validator() configdata.validate(validator, preserve_errors=True) for k, v in configdata['keybindings'].items(): if v == 'None': configdata['keybindings'][k] = '' with open(ns.dst, mode='wt') as f: json.dump(configdata, f, indent=4, separators=(',', ':'), sort_keys=True) return print('convert {} to {}'.format(ns.src, ns.dst))