我需要一些帮助来找到存储大量数据(1~2GB)的最佳方式。数据源是一个原始二进制文件,其中包含在两个设备之间交换的网络应用程序包。包类是我自己用 Python 定义的(见下文)。我想以这样一种方式存储我的对象,以便以后可以逐个数据包而不是逐字节读取文件class AppPacket: def __init__(self, version=0, command=0, flags=0, seq=0, pldlen=0, pld=[]): self.Version = np.uint8(version) self.Command = np.uint8(command) self.Flags = np.uint16(flags) self.SequenceNumber = np.uint16(seq) self.PayloadLength = np.uint16(pldlen) self.Payload = np.uint8(pld) self.CRC8 = np.uint8(0)逐字节读取并解析数据以重建每个数据包至少需要 30 分钟才能达到 750MB。我希望尽可能减少这个时间
1 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
按照@Kris 的建议,要结束这个主题,最好的方法是使用数据库。由于 Python 提供原生 SQLite3 模块,因此我选择将它与 SQLite Studio 一起用于数据库管理。
我使用 executemany() 语句和多线程来提高存储过程中的性能。
请参阅:https ://www.tutorialspoint.com/sqlite/sqlite_python.htm
谢谢你 :)
添加回答
举报
0/150
提交
取消