Like CPython standard configparser but adjusted for UDK config files.
pip install udk_configparser
from udk_configparser import UDKConfigParser
cg = UDKConfigParser()
cg.read("Engine.ini")
cg["Section"]["Key"] = "NewValue"
# Multi-value example.
pkg_name = "MyPackage"
edit_packages = cg["UnrealEd.EditorEngine"].getlist("+EditPackages")
if pkg_name not in edit_packages:
edit_packages.append(pkg_name)
# Currently, setting multi-value data requires manually
# joining the data to ensure it is written correctly.
cg["UnrealEd.EditorEngine"]["+EditPackages"] = "\n".join(edit_packages)
with open("Engine.ini", "w") as config_file:
cg.write(config_file, space_around_delimiters=False)
# Engine.ini before writing:
# [UnrealEd.EditorEngine]
# +EditPackages=UTGame
# +EditPackages=UTGameContent
# After:
# [UnrealEd.EditorEngine]
# +EditPackages=UTGame
# +EditPackages=UTGameContent
# +EditPackages=MyPackage
- Comments get removed during writes.