Python 如果在程序运行时重新启动,使用configparser写入.ini文件将导致空文件

Python 如果在程序运行时重新启动,使用configparser写入.ini文件将导致空文件,python,io,embedded,configparser,configobj,Python,Io,Embedded,Configparser,Configobj,我有一个程序,每五秒钟运行一个方法。在这种方法中,我需要写入configuration.ini文件,因为这是嵌入式软件,它必须能够处理在未知时间关闭的系统。但是,每当程序运行时系统关闭时,当系统再次启动时,.ini文件为空 以下是正在运行的方法的代码: def HandleBatteryMonitoring(): #在此之前的一些代码。。。 systemConfig=ConfigObj('settings.ini') systemConfig.filename='settings.ini' sy

我有一个程序,每五秒钟运行一个方法。在这种方法中,我需要写入configuration.ini文件,因为这是嵌入式软件,它必须能够处理在未知时间关闭的系统。但是,每当程序运行时系统关闭时,当系统再次启动时,.ini文件为空

以下是正在运行的方法的代码:

def HandleBatteryMonitoring():
#在此之前的一些代码。。。
systemConfig=ConfigObj('settings.ini')
systemConfig.filename='settings.ini'
systemConfig['systemsettings']['batterychargebuslsb']=str(chargingBatteryMSB)
systemConfig['systemsettings']['batterychargebuslsb']=str(chargingBatteryLSB)
systemConfig['systemsettings']['batterydischargebusmsb']=str(dischargeBatteryMSB)
系统配置['systemsettings']['batterydischargebuslsb']=str(放电模式SB)
systemConfig['systemsettings']['batterypercentage']=str(batterypercentage)
systemConfig.write()
目前它正在使用ConfigObj,但这只是因为ConfigParser也出现了同样的问题,我希望另一个库可以帮助解决这个问题。下面是使用ConfigParser时的相同代码:

def HandleBatteryMonitoring():
#在此之前的一些代码。。。
systemConfig=configparser.configparser('settings.ini')
systemConfig['systemsettings']['batterychargebuslsb']=str(chargingBatteryMSB)
systemConfig['systemsettings']['batterychargebuslsb']=str(chargingBatteryLSB)
systemConfig['systemsettings']['batterydischargebusmsb']=str(dischargeBatteryMSB)
系统配置['systemsettings']['batterydischargebuslsb']=str(放电模式SB)
systemConfig['systemsettings']['batterypercentage']=str(batterypercentage)
打开('settings.ini','w')作为文件:
systemConfig.write(文件)
从这里调用该方法:

def OnHandleCharging():
尽管如此:
车把电池充电()
时间。睡眠(5)
应该注意的是,当程序运行时,文件被正确写入,我可以看到值随着文件的变化而变化。只有在操作过程中重新启动系统时才会发生这种情况


我需要这个配置文件不被清空后重新启动。对此,任何解决方案或变通办法都将不胜感激

尝试以“r+”的形式打开文件,只需更改变量,如果以“w”打开文件,可能会覆盖该文件。

尝试以“r+”的形式打开文件,只需更改变量,如果你用“w”打开文件,它可能会覆盖文件。

所以问题是你希望它在硬件关闭后仍能工作?@aws\u peedient问题是我需要配置文件在硬件重新启动后不要删除自己哈哈,我会更新问题来澄清这一点,所以问题是你希望它在硬件关闭后仍能工作?@aws\u学徒问题是我需要配置文件在硬件重新启动后不删除自己哈哈,我会更新问题来澄清这一点,绝对完美,谢谢伙计。我已经为此挣扎了好几天,这个答案奏效了。再次感谢你的帮助。绝对完美,谢谢你。我已经为此挣扎了好几天,这个答案奏效了。再次感谢你的帮助。