Python - печать статистики, когда программа принудительно закрыта (в терминале или иным образом) - PullRequest
0 голосов
/ 31 марта 2020

Я пишу программу на python, которая должна работать весь день, и я хочу собрать статистику о том, что было сделано, когда программа закрыта. Однако я не могу найти правильный python способ сделать это. Я пробовал блок «попробовать-кроме» с глобальными переменными, но когда я принудительно остановил его в терминале, ничего не печаталось.

Чтобы быть более ясным в отношении проблемы и ее кода, моя программа продолжает работать с базой данных о ценах на акции. и пытается найти арбитраж между двумя разными обменами. Я хочу напечатать, сколько проверок и арбитражей было найдено во время работы. Упрощенный код для справки:


import list_of_stocks # my handmade list of stocks to be checked in the database
import arbitrage_tools # functions to check for arbitrage

#statistics
arbitrage_checks = 0
total_arbitrages = 0

def main():
    global arbitrage_checks
    global total_arbitrages
    list_of_stocks = default_list_of_stocks # setting the real list of stocks to be checked
    while True:
        for stock in list_of_stocks:
            arbitrage_checks += 1
            found_arbitrage = arbitrage_tools.check(stock) # checks stock prices in two exchanges and returns true or false
            if found_arbitrage:
                total_arbitrages += 1

if __name__ == "__main__":
    try:
        main()
    finally:
        print(f"Arbitrage checks: {arbitrage_checks}")
        print(f"Arbitrages found: {total_arbitrages}")

Заранее спасибо!

...