I am writing a code in python. I have a confg file with following data:
[section1]
name=John
number=3
I am using ConfigParser module to add another section in this already existing confg file without overwriting it. But when I use below code:
config = ConfigParser.ConfigParser()
config.add_section('Section2')
config.set('Section2', 'name', 'Mary')
config.set('Section2', 'number', '6')
with open('~/test/config.conf', 'w') as configfile:
config.write(configfile)
it overwrites the file. I do not want to delete the previous data. Is there any way I can just add one more section? If I try to get and write the data of previous sections first, then it will become untidy as the number of sections will increase.
Open the file in append mode instead of write mode. Use 'a' instead of 'w'.
Example:
config = configparser.RawConfigParser({'num threads': 1})
config.read('path/to/config')
try:
NUM_THREADS = config.getint('queue section', 'num threads')
except configparser.NoSectionError:
NUM_THREADS = 1
config_update = configparser.RawConfigParser()
config_update.add_section('queue section')
config_update.set('queue section', 'num threads', NUM_THREADS)
with open('path/to/config', 'ab') as f:
config_update.write(f)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With