В моем случае я хочу рассортировать (используя pickle.dump()
) два отдельных списка в файл, а затем извлекать их из отдельного файла, однако при использовании pickle.load()
я изо всех сил пытался найти, где заканчивается один список, а следующий начинается, t знать, как pickle.dump()
их способом, который облегчает их получение, даже после просмотра документации.Как вы можете распиливать несколько объектов в одном файле?
2
A
ответ
3
pickle
будет читать их в том же порядке сбрасывали их.
import pickle
test1, test2 = ["One", "Two", "Three"], ["1", "2", "3"]
with open("C:/temp/test.pickle","wb") as f:
pickle.dump(test1, f)
pickle.dump(test2, f)
with open("C:/temp/test.pickle", "rb") as f:
testout1 = pickle.load(f)
testout2 = pickle.load(f)
print testout1, testout2
Печатает ['One', 'Two', 'Three'] ['1', '2', '3']
. Чтобы рассортировать произвольное количество объектов или просто упростить их работу, вы можете поместить их в кортеж, а затем вам нужно только рассолить один объект.
import pickle
test1, test2 = ["One", "Two", "Three"], ["1", "2", "3"]
saveObject = (test1, test2)
with open("C:/temp/test.pickle","wb") as f:
pickle.dump(saveObject, f)
with open("C:/temp/test.pickle", "rb") as f:
testout = pickle.load(f)
print testout[0], testout[1]
Печатает ['One', 'Two', 'Three'] ['1', '2', '3']
+0
Спасибо, теперь я знаю, что маринование читает их в порядке их маринования. – Drake
Вы пробовали писать их как подсписков в списке ограждающей например, 'my_list = [[list_1], [list_2]])' или аналогичные или каким-то образом включить их в единую структуру данных для рассола? – roganjosh
Если вы соберите два списка один за другим в том же файле с помощью 'pickle.dump (l1, f); pickle.dump (l2, f) ', то вы можете разложить их в том же порядке из того же файла с помощью' l1 = pickle.load (f); l2 = pickle.load (е) '. Пикель найдет, где он кончается, а другой начнется. – DyZ
Я пробую это, спасибо. Если это не работает, я использую подсписки, о которых я и не думал. – Drake