Python string.replace regular expression

I have a parameter file of the form

    parameter-name parameter-value

where the parameters may be in any order but there is only one parameter per line. I want to replace one parameter's parameter-value with a new value.

I am using a line replace function posted previously (Search and replace a line in a file in Python) to replace the line which uses python's string.replace(pattern, subst). The regular expression that I'm using works for instance in vim but doesn't appear to work in string.replace. Here is the regular expression that I'm using:

    line.replace("^.*interfaceOpDataFile.*$/i", "interfaceOpDataFile %s" % (fileIn))

where interfaceOpDataFile is the parameter name that I'm replacing (/i for case insensitive) and the new parameter value is the contents of the fileIn variable. Is there a way to get python to recognize this regular expression or else is there another way to accomplish this task?

str.replace() v2|v3 does not recognize regular expressions.

To perform a substitution using a regular expression, use re.sub() v2|v3.

For example:

    import re

    line = re.sub(
               "interfaceOpDataFile %s" % fileIn, 

In a loop, it would be better to compile the regular expression first:

    import re

    regex = re.compile(r"^.*interfaceOpDataFile.*$", re.IGNORECASE)
    for line in some_file:
        line = regex.sub("interfaceOpDataFile %s" % fileIn, line)
        # do something with the updated line


Back to homepage or read more recommendations: