Files
2026-06-24 09:35:46 +08:00

36 lines
1.0 KiB
Python
Executable File

from google.protobuf import json_format
import os
import json
import sys
from absl import logging
class Reader:
def __init__(self, data_file_path):
with open(data_file_path) as reader:
data_file_conf = json.load(reader)
data_file_base_path = os.path.dirname(data_file_path)
index_file_path = os.path.join(data_file_base_path, data_file_conf["index"][0])
binary_file_path = os.path.join(data_file_base_path, data_file_conf["data"][0])
with open(index_file_path, "r") as object_index_file:
self.object_index = json.load(object_index_file)
self.binary_file_path = binary_file_path
def each(self):
with open(self.binary_file_path, "rb") as object_pb_file:
for obj_idx in self.object_index["index"]:
offset = obj_idx[1]
size = obj_idx[2]
object_pb_file.seek(offset)
bts = object_pb_file.read(size)
logging.debug("data size %d", size)
yield bts