在项目中,为了方便测试人员测试代码,以及最终交付时保证代码的规范性,通常将代码中的输入变量写成配置文件供调用,同时方便修改变量。
先创建一个txt文件,以字典的形式编写你要输入的变量,及其对应的值。
每对键值用逗号隔开!
每对键值用逗号隔开!
每对键值用逗号隔开!
{
"top_red_Height" : 290,
"isBlue" : 1,
"rod_type" : 1,
"search_left_val" : 1300,
"search_right_val" : 1600,
"crop_type" : "xiaomai",
"proj_path" : "D:/work/image/zhugao/0629",
"save_folder" : "D:/work/image/zhugao/07282",
"txt_path" : "D:/work/image/zhugao/07282/txt.txt"
}
写完后,修改txt后缀名为json,其自动转换为json文件。至此json文件就写好了。
首先需要在python程序中引用json文件。
import json
读取json文件:
def read_config():
with open(r"D:\\work\\Python_Vs\\bianli\\bianli\\XMconfig.json") as json_file:
config = json.load(json_file)
return config
config = read_config()
因为json文件是字典格式,所以要读取键值,就得按照字典格式读取。
top_red_Height = config["top_red_Height"]
isBlue = config["isBlue"]
rod_type = config["rod_type" ]
search_left_val = config["search_left_val" ]
search_right_val = config["search_right_val" ]
crop_type = config["crop_type" ]
proj_path = config["proj_path" ]
save_folder = config["save_folder" ]
txt_path = config["txt_path" ]
这样就显得很**,一点也不酷。因此呢,我们可以通过这样一行指令来解决这个问题。
globals().update(config)
这样呢,就让字典里的键跟值变成全局变量,在python程序中直接读取键,就可以获得值。
vals_top,vals_bot = chicun(top_red_Height, isBlue, rod_type)
#这行代码是直接将json中的键直接作为函数的形参进行调用。不需要通过config["top_red_Height"]来读取对应的值。
#事实证明,上述方法可行
到这一part,我们已经实现了json文件的读取,但有些人可能会在读取json文件的同时,需要更新json文件中键所对应值。
def update_config(config):
with open(r"D:\\work\\Python_Vs\\bianli\\bianli\\config.json", "w") as json_file:
json.dump(config, json_file, indent=4)
return None
p = "E:/abc"
config["proj_path"] = p
update_config(config)
通过上述指令就可以更新键值。大家可以自己动手试试。