shutil.copyfileobj()
should be much faster than running line-by-line. Note from the docs:
Note that if the current file position of the [from_file] object is not 0,
only the contents from the current file position to the end of the
file will be copied.
Thus:
from_file.readline() # and discard
to_file.write(replacement_line)
shutil.copyfileobj(from_file, to_file)