Выбор протокола рассола Python?Python

Программы на Python
Ответить
Anonymous
 Выбор протокола рассола Python?

Сообщение Anonymous »

Я использую Python 2.7 и пытаюсь замариновать объект. Мне интересно, в чем реальная разница между протоколами рассола.

Код: Выделить всё

import numpy as np
import pickle

class Data(object):
def __init__(self):
self.a = np.zeros((100, 37000, 3), dtype=np.float32)

d = Data()
print("data size: ", d.a.nbytes / 1000000.0)
print("highest protocol: ", pickle.HIGHEST_PROTOCOL)
pickle.dump(d, open("noProt", "w"))
pickle.dump(d, open("prot0", "w"), protocol=0)
pickle.dump(d, open("prot1", "w"), protocol=1)
pickle.dump(d, open("prot2", "w"), protocol=2)

out >> data size:  44.4
out >> highest protocol:  2
потом я обнаружил, что сохраненные файлы имеют разные размеры на диске:
Я знаю, что prot0 — это текстовый файл, читаемый человеком, поэтому я не хочу его использовать.
Думаю, протокол 0 — это протокол 0, заданный по умолчанию.

Интересно, в чем разница между протоколами 1 и 2, есть ли причина, по которой мне следует выбрать тот или иной?

Что лучше использовать: Pickle или cPickle?

Подробнее здесь: https://stackoverflow.com/questions/235 ... col-choice
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»