Using Blender & Python for Batch Image Conversion, getting unexplained Runtime Errors
Don't use operators unless there is no other way. In this case you're making your life overly complicated with them. This is my proposed approach:

for i in bpy.data.images:
    new_path = i.filepath.replace(".dds", ".png")
    if new_path == i.filepath:
        print('Refusing to overwrite %s (name=%r)' % (i.filepath, i.name))
        continue
    i.save_render(bpy.path.abspath(new_path))


I've also taken the liberty to change a bit more:


Replacing .dds instead of just dds. You don't want to change adds-liquid.dds into apng-liquid.png. For more reliable manipulating of file paths I would recommend pathlib rather than string manipulation.
Using bpy.path.abspath() to convert any blendfile-relative file path to an absolute path. Without this, saving the file won't work reliably.
Added a check to prevent overwriting a non-DDS file.
Applied PEP 8 -- Style Guide for Python Code to your variable names.