在文件中存储大量自定义 Python 对象的最佳方法是什么?

我需要一些帮助来找到存储大量数据(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。我希望尽可能减少这个时间


qq_遁去的一_1
浏览 73回答 1
1回答

斯蒂芬大帝

按照@Kris 的建议,要结束这个主题,最好的方法是使用数据库。由于 Python 提供原生 SQLite3 模块,因此我选择将它与 SQLite Studio 一起用于数据库管理。我使用 executemany() 语句和多线程来提高存储过程中的性能。请参阅:https ://www.tutorialspoint.com/sqlite/sqlite_python.htm谢谢你 :)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python