Сериализация Python с поддержкой Append - PullRequest
0 голосов
/ 08 января 2019

Я работаю со многими объектами, которые имеют некоторые атрибуты, а также с массивами (изображения, маски и т. Д.). Я хочу выгрузить их на диск во время выполнения программы, чтобы сохранить память, и хочу добавить больше данных, когда они доступны (во время выполнения той же программы), без загрузки выгруженного объекта в память.

Проблема в том, что добавление данных в сериализованный / протравленный файл невозможно без предварительной загрузки в память. Как сохранить / обновить (не загружая весь объект) эти объекты во время выполнения программы? Любая идея приветствуется.

Ниже приведен псевдокод.

class StoredObject():
    def __init__(self, centroid, _image, _color, _bbox, _type, _mask):
        self.centroids = [centroid]
        self.bboxes = [_bbox]
        self.track_color = random_color()
        self.color = _color
        self.images = [_image]
        self.type = _type
        self.last_appear = time.time()
        self.masks = [_mask]

store = []

track_objects(obj, obj_image, obj_mask):
    if obj already belongs to store:
        find where it is stored earlier
            and add obj_image and obj_mask to its obj_image list
            and obj_mask list respectively
    else
        add obj(obj_image, obj_mask) in store
...