Хранить постоянные переменные в памяти между запусками скрипта Python

Есть ли способ сохранить переменную результата в памяти, чтобы мне не приходилось пересчитывать ее каждый раз, когда я запускаю начало моего сценария? Я выполняю длинную (5-10 секунд) серию точных операций с набором данных (который я читаю с диска) каждый раз, когда запускаю свой скрипт. Это не было бы большой проблемой, так как я довольно хорошо умею использовать интерактивный редактор для отладки кода между запусками; однако иногда интерактивные возможности просто не помогают.

Я знаю, что могу записать свои результаты в файл на диске, но я бы хотел избежать этого, если это вообще возможно. Это должно быть решение, которое генерирует переменную при первом запуске скрипта и хранит ее в памяти до закрытия самой оболочки или до тех пор, пока я явно не скажу ей, чтобы она выдохлась. Примерно так:

# Check if variable already created this session
in_mem = var_in_memory() # Returns pointer to var, or False if not in memory yet
if not in_mem:
    # Read data set from disk
    with open('mydata', 'r') as in_handle:
        mytext = in_handle.read()
    # Extract relevant results from data set
    mydata = parse_data(mytext)
    result = initial_operations(mydata)
    in_mem = store_persistent(result)

У меня есть подозрение, что модуль shelve может быть тем, что я ищу здесь, но похоже, чтобы открыть переменную полки, мне нужно было бы указать имя файла для постоянного объекта, поэтому я не уверен, что это именно то, что я ищу.

Есть какие-нибудь советы, как заставить полку делать то, что я хочу? Есть ли альтернативные идеи?

50
задан machine yearning 13 July 2011 в 14:56
поделиться