Большая часть этого кода кажется мне излишней, и мне было интересно, можно ли его упростить.Вот несколько ключевых мест, которые, я считаю, могут быть упрощены.
1- Исключения ошибок одинаковы для всех 5 циклов
2- для последних 3 разделов. Создайте потоки, запустите потоки и дождитесь их завершения.Являются ли они способом сделать этот раздел динамическим, поэтому эти 3 раздела могут увеличиваться или уменьшаться в зависимости от количества многопоточных циклов?
Вот код
def write_prices():
for i in tqdm_notebook(range(0,len(stock_ticker.Symbol))):
try:
ticker_df=pd.DataFrame(get_data(np.array(stock_ticker.Symbol)[i]))
ticker_df.to_csv("E:\\Stock Database\\Stock Prices\\%s.txt"%np.array(stock_ticker.Symbol)[i])
except ValueError:
print (" ValueError :%s" %np.array(stock_ticker.Symbol)[i])
except FileNotFoundError:
print (" FileNotFoundError :%s" %np.array(stock_ticker.Symbol)[i])
except KeyError:
print (" KeyError :%s" %np.array(stock_ticker.Symbol)[i])
except IndexError:
print (" IndexError :%s" %np.array(stock_ticker.Symbol)[i])
except NameError:
print (" NameError :%s" %np.array(stock_ticker.Symbol)[i])
except HTTPError:
print (" HTTPError " )
def write_incomes():
for i in tqdm_notebook(range(0,len(stock_ticker.Symbol))):
try:
ticker_df=pd.DataFrame(get_income_statement(np.array(stock_ticker.Symbol)[i]))
ticker_df.to_csv("E:\\Stock Database\\Income Statement\\%s.txt"%np.array(stock_ticker.Symbol)[i])
except ValueError:
print (" ValueError :%s" %np.array(stock_ticker.Symbol)[i])
except FileNotFoundError:
print (" FileNotFoundError :%s" %np.array(stock_ticker.Symbol)[i])
except KeyError:
print (" KeyError :%s" %np.array(stock_ticker.Symbol)[i])
except IndexError:
print (" IndexError :%s" %np.array(stock_ticker.Symbol)[i])
except NameError:
print (" NameError :%s" %np.array(stock_ticker.Symbol)[i])
except HTTPError:
print (" HTTPError " )
def write_balance_sheet():
for i in tqdm_notebook(range(0,len(stock_ticker.Symbol))):
try:
ticker_df=pd.DataFrame(get_balance_sheet(np.array(stock_ticker.Symbol)[i]))
ticker_df.to_csv("E:\\Stock Database\Balance Sheet\\%s.txt"%np.array(stock_ticker.Symbol)[i])
except ValueError:
print (" ValueError :%s" %np.array(stock_ticker.Symbol)[i])
except FileNotFoundError:
print (" FileNotFoundError :%s" %np.array(stock_ticker.Symbol)[i])
except KeyError:
print (" KeyError :%s" %np.array(stock_ticker.Symbol)[i])
except IndexError:
print (" IndexError :%s" %np.array(stock_ticker.Symbol)[i])
except NameError:
print (" NameError :%s" %np.array(stock_ticker.Symbol)[i])
except HTTPError:
print (" HTTPError " )
def write_cash_flow():
for i in tqdm_notebook(range(0,len(stock_ticker.Symbol))):
try:
ticker_df=pd.DataFrame(get_cash_flow(np.array(stock_ticker.Symbol)[i]))
ticker_df.to_csv("E:\\Stock Database\Cash Flow\\%s.txt"%np.array(stock_ticker.Symbol)[i])
except ValueError:
print (" ValueError :%s" %np.array(stock_ticker.Symbol)[i])
except FileNotFoundError:
print (" FileNotFoundError :%s" %np.array(stock_ticker.Symbol)[i])
except KeyError:
print (" KeyError :%s" %np.array(stock_ticker.Symbol)[i])
except IndexError:
print (" IndexError :%s" %np.array(stock_ticker.Symbol)[i])
except NameError:
print (" NameError :%s" %np.array(stock_ticker.Symbol)[i])
except HTTPError:
print (" HTTPError " )
def write_stats():
for i in tqdm_notebook(range(0,len(stock_ticker.Symbol))):
try:
ticker_df=pd.DataFrame(get_stats(np.array(stock_ticker.Symbol)[i]))
ticker_df.to_csv("E:\\Stock Database\Statistics\\%s.txt"%np.array(stock_ticker.Symbol)[i])
except ValueError:
print (" ValueError :%s" %np.array(stock_ticker.Symbol)[i])
except FileNotFoundError:
print (" FileNotFoundError :%s" %np.array(stock_ticker.Symbol)[i])
except KeyError:
print (" KeyError :%s" %np.array(stock_ticker.Symbol)[i])
except IndexError:
print (" IndexError :%s" %np.array(stock_ticker.Symbol)[i])
except NameError:
print (" NameError :%s" %np.array(stock_ticker.Symbol)[i])
except HTTPError:
print (" HTTPError " )
# construct the threads
t1 = threading.Thread(target=write_prices)
t2 = threading.Thread(target=write_incomes)
t3 = threading.Thread(target=write_balance_sheet)
t4 = threading.Thread(target=write_cash_flow)
t5 = threading.Thread(target=write_stats)
# start the threads
[t.start() for t in (t1, t2, t3, t4, t5)]
# wait until they finish
[t.join() for t in (t1, t2, t3, t4, t5)]