我需要一些帮助,以找到存储大量数据(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。我希望尽可能减少这种时间
答案 0 :(得分:1)
按照@Kris的建议,要关闭该主题,最好的方法是使用数据库。由于Python提供了本机SQLite3模块,因此我选择将其与SQLite Studio一起用于数据库管理。
我使用executemany()语句和多线程来提高存储过程中的性能。
请参阅:https://www.tutorialspoint.com/sqlite/sqlite_python.htm
感谢您:)