我有一个Python脚本,可以从任何目标文件加载二进制数据并存储在内部 本身,在列表中。问题是存储文件越大,下次打开文件所需的时间越长。假设我想加载700 MB的电影并将其存储在我的脚本文件中。然后想象我第二天用该脚本中存储的700 MB数据打开它。打开它需要永恒!
以下是脚本文件外观的简化布局。
第1行:“700 MB电影存储在列表中。”
以下所有内容:“最终用户使用的所有功能。”
在解释器到达用户等待调用的函数之前, 它必须首先解释第1行的700 MB数据!这是个问题 因为谁想等一个小时才打开剧本?
那么,如果我像这样更改文件的布局会有帮助吗?
第一行:“最终用户使用的所有功能。”下图:“700 MB电影存储在列表中。“
这会有帮助吗?或者,在调用函数之前,解释器是否必须遍历所有700 MB?
答案 0 :(得分:1)
Python编译器的工作方式使你想要做的事情至少很难说。
首先,每次更改脚本(例如通过添加文件),它将在执行之前触发一个新的编译循环(在.pyc文件中转换.py文件)。
其次,每次导入模块时,都会将大量数据块加载到内存中(无论是导入还是首次访问数据时)。
这不仅缓慢,而且也不安全且容易出错。
我猜你打算做的是,分发一个包含数据的单个文件。
你可以用这个小技巧做到这一点:
制作executable python package(基本上是一个zip文件)。 使用zipfile模块可以非常轻松地构建zip文件。