<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _do_readme_update(self):
 """Patch README.rst to reflect the data files used in release."""

        import codecs
        import glob

        # read in,
        data_in = codecs.open(
            os.path.join(HERE, 'README.rst'), 'r', 'utf8').read()

        # search for beginning and end positions,
        pos_begin = data_in.find(self.README_PATCH_FROM)
        assert pos_begin != -1, (pos_begin, self.README_PATCH_FROM)
        pos_begin += len(self.README_PATCH_FROM)

        pos_end = data_in.find(self.README_PATCH_TO)
        assert pos_end != -1, (pos_end, self.README_PATCH_TO)

        glob_pattern = os.path.join(HERE, 'data', '*.txt')
        file_descriptions = [
            self._describe_file_header(fpath)
            for fpath in glob.glob(glob_pattern)]

        # patch,
        data_out = (
            data_in[:pos_begin] +
            '\n\n' +
            '\n'.join(file_descriptions) +
            '\n\n' +
            data_in[pos_end:]
        )

        # write.
        print("patching {} ..".format(self.README_RST))
        codecs.open(
            self.README_RST, 'w', 'utf8').write(data_out)