开源云真机平台-Sonic平台-python自定义脚本-config.json方式实现全局配置参数的读写操作

本文主要是介绍开源云真机平台-Sonic平台-python自定义脚本-config.json方式实现全局配置参数的读写操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【主要功能】


config.json方式实现全局配置参数的读写操作

使用python实现以下功能:
1、使用将接口获取的变量值,写入到当前目录下的config文件中,如delayTime=10;
2、读取当前目录下的config文件中,特定变量的值,如delayTime=10;
3、若config文件或者节点不存在,则自动进行创建;

【详细代码】
 

#!/usr/bin/env python
# -*- coding: utf-8 -*-import json,osdef write_config_json(key=None, value=None,section="default", config_file='config.json'):"""将接口获取的变量值写入到config文件中:param config_file: config文件路径,默认为'config.json':param key: 需要写入的变量名:param value: 需要写入的变量值:return: 如果文件不存在则创建,如果节点不存在则新增,如果节点存在则覆盖"""if not os.path.exists(config_file):print(f'文件{config_file}不存在,将创建新的文件')with open(config_file, 'w', encoding='utf-8') as f:json.dump({f'{section}':{}}, f)with open(config_file, 'r', encoding='utf-8') as f:config = json.load(f)config[section][key] = valuewith open(config_file, 'w', encoding='utf-8') as f:json.dump(config, f, indent=4)# 封装函数:一次写入多个值至配置文件,适用于大量数据写入,提高性能
def write_configs_json(keys_values_dict, section="default", config_file='config.json'):"""将接口获取的变量值写入到config文件中接受一个变量名列表,和一个参数value,它接受一个与key列表长度相同的值列表。然后遍历这个元组列表,将每个元组的键值对写入到配置文件中。:param config_file: config文件路径,默认为'config.json':param key: 需要写入的变量名:param value: 需要写入的变量值:return: 如果文件不存在则创建,如果节点不存在则新增,如果节点存在则覆盖"""if not os.path.exists(config_file):print(f'文件{config_file}不存在,将创建新的文件')with open(config_file, 'w', encoding='utf-8') as f:json.dump({section:{}}, f)with open(config_file, 'r', encoding='utf-8') as f:config = json.load(f)if section not in config:config[section] = {}# 设置变量值for key, value in keys_values_dict.items():config[f'{section}'][key] = str(value)# 写入配置文件with open(config_file, 'w', encoding='utf-8') as f:json.dump(config, f, indent=2)def read_config_json(key=None, section="default", config_file='config.json'):"""读取config文件中的特定变量值:param config_file: config文件路径,默认为'config.json':param key: 需要读取的变量名:return: 返回读取到的变量值,如果文件或节点不存在则返回None"""if not os.path.exists(config_file):print(f'文件{config_file}不存在')return Nonewith open(config_file, 'r', encoding='utf-8') as f:config = json.load(f)if key not in config[section]:print(f'节点{key}不存在')return Nonereturn config[section][key]# 打印config文件的内容
def type_config(config_file='config.json'):# 若配置文件存在,则读取所有变量值if os.path.exists(config_file):result = open(config_file, "r", encoding='utf-8').read()print(f"result={result}")return result# 若配置文件不存在,则返回空值else:return Noneif __name__ == '__main__':# 以上代码实现了读取和写入config.json文件的功能,# 其中 read_config_json 函数用于读取特定变量的值,# write_config_json 函数用于将接口获取的变量值写入到config文件中。# 如果config文件不存在,会自动创建新的文件;# 如果节点不存在,会新增节点;# 如果节点存在,会覆盖原有的节点值。# 测试单个写入操作write_config_json('runTimes', 99)write_config_json('delayTime', 88)write_config_json('sleepTime', 66)print(f"write_config_json={type_config()}")# 测试批量写入操作my_section = {"key1": "value1","key2": "value2","key3": "value3"}write_configs_json(my_section,"HRD")print(f"write_configs_json={type_config()}")# 测试读取操作value = read_config_json('delayTime')print(value)

【运行效果】

result={"default": {"runTimes": 99,"delayTime": 88,"sleepTime": 66},"my_section": {"key1": "value1","key2": "value2","key3": "value3"},"HRD": {"key1": "value1","key2": "value2","key3": "value3"}
}
write_config_json={"default": {"runTimes": 99,"delayTime": 88,"sleepTime": 66},"my_section": {"key1": "value1","key2": "value2","key3": "value3"},"HRD": {"key1": "value1","key2": "value2","key3": "value3"}
}
result={"default": {"runTimes": 99,"delayTime": 88,"sleepTime": 66},"my_section": {"key1": "value1","key2": "value2","key3": "value3"},"HRD": {"key1": "value1","key2": "value2","key3": "value3"}
}
write_configs_json={"default": {"runTimes": 99,"delayTime": 88,"sleepTime": 66},"my_section": {"key1": "value1","key2": "value2","key3": "value3"},"HRD": {"key1": "value1","key2": "value2","key3": "value3"}
}
88

这篇关于开源云真机平台-Sonic平台-python自定义脚本-config.json方式实现全局配置参数的读写操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/613933

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G