2017-02-20 23 views
2

В моем случае я хочу рассортировать (используя pickle.dump()) два отдельных списка в файл, а затем извлекать их из отдельного файла, однако при использовании pickle.load() я изо всех сил пытался найти, где заканчивается один список, а следующий начинается, t знать, как pickle.dump() их способом, который облегчает их получение, даже после просмотра документации.Как вы можете распиливать несколько объектов в одном файле?

+0

Вы пробовали писать их как подсписков в списке ограждающей например, 'my_list = [[list_1], [list_2]])' или аналогичные или каким-то образом включить их в единую структуру данных для рассола? – roganjosh

+0

Если вы соберите два списка один за другим в том же файле с помощью 'pickle.dump (l1, f); pickle.dump (l2, f) ', то вы можете разложить их в том же порядке из того же файла с помощью' l1 = pickle.load (f); l2 = pickle.load (е) '. Пикель найдет, где он кончается, а другой начнется. – DyZ

+0

Я пробую это, спасибо. Если это не работает, я использую подсписки, о которых я и не думал. – Drake

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^