【发布时间】:2013-08-28 18:13:36
【问题描述】:
我有一个 Python 脚本,它从任何目标文件加载二进制数据并存储在里面 本身,在一个列表中。问题是存储的文件越大,下次打开它所需的时间就越长。假设我想加载一个 700 MB 的电影并将其存储在我的脚本文件中。然后想象我第二天打开它,其中存储在该脚本中的 700 MB 数据。打开它需要很长时间!
这是脚本文件外观的简化布局。
第 1 行:“700 MB 的电影存储在列表中。”
以下所有内容:“最终用户使用的所有功能。”
在解释器到达用户等待调用的函数之前, 它必须首先解释第 1 行的 700 MB 数据!这是个问题 因为谁愿意为了打开一个脚本而等待一个小时?
那么,如果我像这样更改文件的布局会有帮助吗?
第一行:“最终用户使用的所有功能。”下图:“700 MB 电影存储在一个列表中。”
这会有帮助吗?或者解释器是否必须在调用函数之前遍历所有 700 MB?
【问题讨论】:
-
究竟如何以及为什么在 Python 中存储一个 700Mb 的文件?
-
为什么你的脚本会自己添加数据?
-
同时,显而易见的解决方案是将数据放在一个单独的文件中,并在启动时读取和处理它。如果处理时间过长,只需
pickle并存储结果,如果它与原始数据文件是最新的,则使用 pickle 文件。 -
@dzhioev 提出了一个很好的观点。更重要的是,你能描述一下你试图通过这样做来解决的实际用例吗?因为这闻起来很像XY problem。
-
@Bakuriu:嗯,它在 80 年代初的 8 位家用电脑上通常非常有用,并且在 90 年代它仍然与复制保护相关,我认为对于那些写病毒。编写一个在第一次运行时将自身修改为 quine 的程序总是一个有趣的测试……
标签: python