<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load(self, config_template, config_file=None):
 """Read the config file if it exists, else read the default config. Creates the user config file if it doesn't exist using the template. :type config_template: str :param config_template: The config template file name. :type config_file: str :param config_file: (Optional) The config file name. If None, the config_file name will be set to the config_template. :rtype: :class:`configobj.ConfigObj` :return: The config information for reading and writing. """

        if config_file is None:
            config_file = config_template
        config_path = build_config_file_path(config_file)
        template_path = os.path.join(os.path.dirname(__file__),
                                     config_template)
        self._copy_template_to_config(template_path, config_path)
        return self._load_template_or_config(template_path, config_path)