conf.py
#================================
# 系统配置管理模块
#================================
import configparser
import traceback
class ConfigManager():
cp = configparser.ConfigParser() # 系统配置
file_name=''
# 加载配置文件
@staticmethod
def load_conf(filename):
try:
print('读取配置文件...')
ConfigManager.file_name=filename
ConfigManager.cp.read(filename,encoding='utf-8-sig') # 不能用utf-8,否则带BOM的文件读取会报错
# import json
# print(ConfigManager.cp.items())
# print(ConfigManager.cp.sections())
print('读取配置文件 完成')
except Exception as e:
traceback.print_exc()
# 获取配置值
@staticmethod
def get(section, option):
return ConfigManager.cp.get(section, option)
# 更新配置项
@staticmethod
def update(option,value):
section='base'
# 根据option查找第一个包含此option的section
for sec in ConfigManager.cp.sections():
isfind=False
for opt in ConfigManager.cp.options(sec):
if opt==option:
isfind=True
section=sec
break;
if isfind==True:
break;
ConfigManager.cp.set(section, option, value)
ConfigManager.cp.write(open(ConfigManager.file_name,'w+',encoding='utf-8-sig'))
需要一个config.ini
[base]
singlechip_name=COM20
;motor_ser_ip=192.168.1.250
motor_ser_ip=192.168.188.4
motor_ser_port=9999
[sys]
#系统版本
versions=0.9
调用
ConfigManager.load_conf(os.getcwd()+'/config.ini') # 读取配置
m_ip=ConfigManager.get('base','motor_ser_ip')
m_port = int(ConfigManager.get('base', 'motor_ser_port'))
motor.init(m_ip,m_port)