Как я могу запустить эти 2 процедуры Python одновременно? - PullRequest
0 голосов
/ 03 января 2019

Как я могу запустить эти 2 подпрограммы Python одновременно?

первая процедура

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])

и запустите его одновременно

вторая процедура

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])

1 Ответ

0 голосов
/ 03 января 2019

Самый простой способ сделать это - пакет threading, входящий в стандартную библиотеку.Обертывание ваших двух блоков в функциях, а затем оборачивание их в потоки должно сделать эту работу - т.е.

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])

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])

import threading

# construct the threads
t1 = threading.Thread(target=write_prices)
t2 = threading.Thread(target=write_incomes)

# start the threads
[t.start() for t in (t1, t2)]

# wait until they finish
[t.join() for t in (t1, t2)]

Это должно работать, хотя, если у вас есть общие значения между get_data(...) и get_income_statement(...), вы можете нажатькакая-то проблема, которую нужно решить с помощью замков.

...