<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(self, file, updateconfig=True, clean=False, path=None):
 """ Run SExtractor. If updateconfig is True (default), the configuration files will be updated before running SExtractor. If clean is True (default: False), configuration files (if any) will be deleted after SExtractor terminates. """


        if updateconfig:
            self.update_config()

        # Try to find SExtractor program
        # This will raise an exception if it failed

        self.program, self.version = self.setup(path)

        commandline = (
            self.program + " -c " + self.config['CONFIG_FILE'] + " " + file)
        # print commandline

        rcode = os.system(commandline)

        if (rcode):
            raise SExtractorException(
                "SExtractor command [%s] failed." % commandline
            )

        if clean:
            self.clean()