Consider the following INI file:
[TestSettings] # First comment goes here environment = test [Browser] # Second comment goes here browser = chrome chromedriver = default ...
I'm using Python 2.7 to update the ini file:
config = ConfigParser.ConfigParser() config.read(path_to_ini) config.set('TestSettings','environment',r'some_other_value') with open(path_to_ini, 'wb') as configfile: config.write(configfile)
How can I update the INI file without removing the comments. The INI file is updated but the comments are removed.
[TestSettings] environment = some_other_value [Browser] browser = chrome chromedriver = default
Comments in the INI must start with a semicolon (";") or a hash character ("#"), and run to the end of the line. A comment can be a line of its own, or it may follow a key/value pair (the "#" character and trailing comments are extensions of minIni).
Open the Backup Manager installation folder. Find the config. ini file inside (see the table below for the exact file path on each operating system) and open as an Administrator. Edit the settings as needed, save the changes and close the file.
Case sensitivitySection and property names are case insensitive.
The reason that comments in config files are wiped when writing back is that the write method didn't take care of comments at all. It just writes key/value pairs.
The easiest way to bypass this is to init configparser object with a customized comment prefix and allow_no_value = True. If we want to keep the default "#" and ";" comment lines in the file, we can use comment_prefixes='/'.
i.e., to keep comments, you have to trick configparser into believing this is not a comment, this line is a key without a value. Interesting :)
# set comment_prefixes to a string which you will not use in the config file config = configparser.ConfigParser(comment_prefixes='/', allow_no_value=True) config.read_file(open('example.ini')) ... config.write(open('example.ini', 'w'))
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