对于配置文件,在代码跑的过程中,同时需要读写,对于写入,一定要临时读,不要用前面读过的变量来修改配置文件,否则会报错, 其他地方也在读这个文件,例子中是gui_conf.ini这个文件
import os
import sys
import time
import configparser
import globalvar
TAG = 'initialize'
class Init(object):
def __init__(self):
self.gui_conf = configparser.ConfigParser()
self.gui_conf_path = os.path.join(globalvar.BASE_DIR, "conf", "gui_conf.ini")
self.gui_conf.read([self.gui_conf_path])
# 直接启动
self.start()
def start(self):
# 进度10%
time.sleep(20)
key_val_dict = {"progress_percent": "10"}
section = "other_parameter"
for k, v in key_val_dict.items():
self.gui_conf.set(section, k, v)
self.gui_conf.write(open(self.gui_conf_path, "w+", encoding="utf-8"))
print("写入:%s完成!" % key_val_dict)
# 这里执行一些代码......
print('initialize done!\r\n')
# 进度100% 此时重新读,否则会读的是最开始的,写入的也是最开始的,这里和初始化读的是同一个文件
key_val_dict = {"progress_percent" : "10"}
section = "other_parameter"
gui_conf = configparser.ConfigParser()
gui_conf_path = os.path.join(globalvar.BASE_DIR, "conf", "gui_conf.ini")
gui_conf.read([gui_conf_path])
for k, v in key_val_dict.items():
gui_conf.set(section, k, v)
gui_conf.write(open(self.gui_conf_path, "w+", encoding="utf-8"))
print("写入:%s完成!" % key_val_dict)
if __name__ == '__main__':
Init()