<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def getCycleData(self, attri, fname, numtype='cycNum'):
 """ In this method a column of data for the associated cycle attribute is returned. Parameters attri : string The name of the attribute we are looking for. fname : string The name of the file we are getting the data from or the cycle number found in the filename. numtype : string, optional Determines whether fname is the name of a file or, the cycle number. If it is 'file' it will then interpret it as a file, if it is 'cycNum' it will then interpret it as a cycle number. The default is "cycNum". """


        fname=self.findFile(fname,numtype)

        if self.inputdir == '':
            self.inputdir = self.sldir      # This chunk of code changes into the directory where fname is,
        os.chdir(self.inputdir)                           # and appends a '/' to the directory title so it accesses the
        self.sldir=os.getcwd() + '/'              # file correctly

        f=open(fname,'r')
        lines=f.readlines()

        if self.inputdir != './':                               #This chunk of code changes back into the directory you started in.
            os.chdir(self.startdir)
            self.sldir = self.inputdir


        for i in range(len(lines)):
            lines[i]=lines[i].strip()

        for i in range(len(lines)):
            if lines[i].startswith('#'):
                lines[i]=lines[i].strip('#')
                tmp=lines[i].split()
                tmp1=[]
                for j in range(len(tmp)):
                    if tmp[j] != '=' or '':
                        tmp1.append(tmp[j])
                tmp=tmp1
                for j in range(len(tmp)):
                    if tmp[j]== attri:
                        try:
                            if '.' in tmp[j+1]:
                                return float(tmp[j+1])
                            else:
                                return int(tmp[j+1])
                        except ValueError:
                            return str(tmp[j+1])

            elif lines[i].startswith('H'):
                continue
            else:
                print('This cycle attribute does not exist')
                print('Returning None')
                return None