<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def download_historical(tickers_list, output_folder):
 """Download historical data from Yahoo Finance. Downloads full historical data from Yahoo Finance as CSV. The following fields are available: Adj Close, Close, High, Low, Open and Volume. Files will be saved to output_folder as <ticker>.csv. :param tickers_list: List of tickers that will be returned. :type tickers_list: list of strings :param output_folder: Output folder path :type output_folder: string """

    __validate_list(tickers_list)
    for ticker in tickers_list:
        file_name = os.path.join(output_folder, ticker + '.csv')
        with open(file_name, 'wb') as f:
            base_url = 'http://real-chart.finance.yahoo.com/table.csv?s='
            try:
                urlopen(base_url + ticker)
                urlretrieve(base_url + ticker, f.name)
            except:
                os.remove(file_name)
                raise RequestError('Unable to process the request. Check if ' +
                                   ticker + ' is a valid stock ticker')