Я создал программу, которая создает длинные списки данных. В конце концов я хочу объединить эти списки в фрейм данных - но для запуска требуются часы, и в этот момент может произойти сбой из-за ошибок или исключений. Я исправлю это, но в то же время я хочу сделать списки постоянными, чтобы программа могла начать снова с того места, где она остановилась.
Первый вопрос: подходит ли рассол для этого?
Мой метод: для выбора списков я работаю со списком переменных (строк), которые являются именами списков (listnames). Затем попробуйте загрузить каждый из них, и если это не удастся из-за того, что файл не существует, он перейдет к созданию пустого списка. Списки все помещены в словарь. Каждый список затем выбирается как list_name.pickle.
listnames=["listname1","listname2","listname3","listname4","listname5","listname6","slistname7"]
dct = {}
for i in listnames:
picknm=i+".pickle"
try:
dct[i]= pickle.load(open(picknm, "rb"))
print("List ",i," loaded from pickle")
except:
dct['%s' % i] = []
print("List ",i," failed to load from pickle. List is blank: ",dct[i]," Saving to pickle as",picknm)
pickle.dump(open(dct[i],picknm,"wb"))
Я не могу заставить работать последнюю строку кода. Ошибка «TypeError: требуется целое число (получило тип str)», однако, я думаю, что мне нужно выбрать список как «нечто.pickle», которое является строкой.
Также, пожалуйста, можете ли вы вообще критиковать мой код. Спасибо