我有一个每五秒运行一次方法的程序。在这种方法中,我需要写入配置 .ini 文件,因为这是嵌入式软件,它必须能够处理系统在未知时间关闭的情况。但是,每次在程序运行时系统关闭,当系统再次启动时,.ini 文件为空。
这是正在运行的方法的代码:
def HandleBatteryMonitoring():
#some code before this...
systemConfig = ConfigObj('settings.ini')
systemConfig.filename = 'settings.ini'
systemConfig['systemsettings']['batterychargebuslsb'] = str(chargingBatteryMSB)
systemConfig['systemsettings']['batterychargebuslsb'] = str(chargingBatteryLSB)
systemConfig['systemsettings']['batterydischargebusmsb'] = str(dischargeBatteryMSB)
systemConfig['systemsettings']['batterydischargebuslsb'] = str(dischargeBatteryLSB)
systemConfig['systemsettings']['batterypercentage'] = str(batteryPercentage)
systemConfig.write()
目前它正在使用 ConfigObj,但这只是因为 ConfigParser 发生了同样的问题,我希望不同的库能解决这个问题。这是使用 ConfigParser 时的相同代码:
def HandleBatteryMonitoring():
#some code before this...
systemConfig = configparser.ConfigParser('settings.ini')
systemConfig['systemsettings']['batterychargebuslsb'] = str(chargingBatteryMSB)
systemConfig['systemsettings']['batterychargebuslsb'] = str(chargingBatteryLSB)
systemConfig['systemsettings']['batterydischargebusmsb'] = str(dischargeBatteryMSB)
systemConfig['systemsettings']['batterydischargebuslsb'] = str(dischargeBatteryLSB)
systemConfig['systemsettings']['batterypercentage'] = str(batteryPercentage)
with open('settings.ini', 'w') as file:
systemConfig.write(file)
从这里调用该方法:
def OnHandleCharging():
while True:
HandleBatteryCharging()
time.sleep(5)
应该注意的是,当程序运行时,文件正在被正确写入,我可以看到随着文件的变化而变化的值。这只发生在系统在运行期间重新启动时。
我需要这个配置文件在重新启动时不被清空。对此的任何解决方案或解决方法将不胜感激。