Я запускаю численный эксперимент, который требует много итераций. После каждой итерации я хотел бы хранить данные в файле рассола или в файле, похожем на рассол, на случай, если время ожидания программы истекло или структура данных будет использована. Как лучше поступить. Вот код скелета:
data_dict = {} # maybe a dictionary is not the best choice
for j in parameters: # j = (alpha, beta, gamma) and cycle through
for k in number_of_experiments: # lots of experiments (10^4)
file = open('storage.pkl', 'ab')
data = experiment() # experiment returns some numerical value
# experiment takes ~ 1 seconds, but increase
# as parameters scale
data_dict.setdefault(j, []).append(data)
pickle.dump(data_dict, file)
file.close()
Вопросы:
- Является ли полка лучшим выбором здесь? Или какая-то другая библиотека Python, о которой я не знаю?
- Я использую data dict, потому что его проще кодировать и он более гибкий, если мне нужно что-то изменить, когда я провожу больше экспериментов. Было бы огромным преимуществом использовать предварительно выделенный массив?
- Влияет ли открытие и закрытие файлов на время выполнения? Я делаю это, чтобы я мог проверять прогресс в дополнение к текстовым журналам, которые я настроил.
Спасибо за все что ты сделал для меня!