<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def read_redo_file(self, redo_file):
 """ Reads a .redo formated file and replaces all current interpretations with interpretations taken from the .redo file Parameters redo_file : path to .redo file to read """

        if not self.clear_interpretations():
            return
        print("-I- read redo file and processing new bounds")
        fin = open(redo_file, 'r')

        new_s = ""
        for Line in fin.read().splitlines():
            line = Line.split('\t')
            specimen = line[0]
            if specimen.startswith("current_"):
                specimen = specimen.lstrip("current_")
                new_s = specimen
                if len(line) < 6:
                    continue

            if len(line) < 6:
                print(("insuffecent data for specimen %s and fit %s" %
                       (line[0], line[4])))
                continue
            if len(line) == 6:
                line.append('g')
            if specimen not in self.specimens:
                print(
                    ("specimen %s not found in this data set and will be ignored" % (specimen)))
                continue

            tmin, tmax = self.parse_bound_data(line[2], line[3], specimen)
            new_fit = self.add_fit(
                specimen, line[4], tmin, tmax, line[1], line[5])

            if line[6] == 'b' and new_fit != None:
                self.bad_fits.append(new_fit)

        fin.close()

        if new_s != "":
            self.select_specimen(new_s)
        if (self.s not in self.pmag_results_data['specimens']) or (not self.pmag_results_data['specimens'][self.s]):
            self.current_fit = None
        else:
            self.current_fit = self.pmag_results_data['specimens'][self.s][-1]
        self.calculate_high_levels_data()
        if self.ie_open:
            self.ie.update_editor()
        self.update_selection()