我目前正在编写端口扫描程序,并且希望该程序在输出中显示每个端口的描述(例如:“ http”,“ ssh”等)。我计划使用IANA port list,但作为Python字典大约需要300 KB。
在这里我有什么选择?我应该只使用巨型dict,还是以某种方式对其进行压缩,或者将其嵌入为SQLite数据库?对于我如何在Python程序中放入巨型数据包的任何建议,我将不胜感激。
(显然,最简单的解决方案是不使用IANA列表,但我想至少先尝试一下。此外,我真的很好奇如何实现此目标。)
答案 0 :(得分:1)
有一个称为klepto的出色模块,它可以帮助您通过缓存访问数据和用于存储数据的存档。它将数据存储到数据库,但使用的界面像字典一样供您使用。
换句话说,文件大小足够小,即使您使用普通的python字典并在事务处理后将它们腌制,也不会造成太多的性能损失。