我有一个包含以下内容的数据文件:
somename = [ [1,2,3,4,5,6],...plus other such elements making a 60 MB file called somefile.py ]
在我的python脚本(与数据在同一个文件夹中)中,我有(只有这个和适当的shebang):
from somefile import somename
这花了将近20分钟才完成。如何改进这种进口?你知道吗
我在macosx10.13上使用python3.7。你知道吗
Tags:
作为“Python源代码”加载文件总是比较慢,但是20分钟加载一个60MiB文件似乎太慢了。Python使用了一个完整的lexer/parser,并做了一些事情,比如跟踪源位置以获得准确的错误报告等。语法是deliberately simple,这使得解析速度相对较快,但仍然比其他文件格式慢得多。你知道吗
我同意另一个建议,但我认为比较不同文件格式的计时会很有趣
首先我生成一些数据:
这需要我的计算机152毫秒才能完成,然后我可以将其保存在“Python源文件”中:
需要84.1毫秒,重新加载时使用:
这需要1.40秒-我尝试了一些其他大小和缩放似乎线性阵列长度,我发现令人印象深刻。然后我开始使用不同的文件格式,JSON:
这里保存需要787毫秒,加载需要131毫秒。接下来,CSV:
保存时间为114毫秒,加载时间为329毫秒(如果字符串未转换为
int
,则减少到129毫秒)。接下来,我尝试了穆斯布尔关于pickle
的建议:保存时间为49.1 ms,加载时间为128 ms
带回家的信息看到,在源代码中保存数据需要10倍的时间,但我不知道如何用你的电脑20分钟!你知道吗
那个somename.py公司文件显然是由某个软件创建的。如果定期重新创建(即经常更改),那么其他软件应该以这样的方式重写,以创建更容易在Python中导入的数据(例如表格文本数据、JSON、yaml等等)。如果是从不更改的静态数据,请执行以下操作:
这将把你的数据序列化成一个文件“数据.pck“它可以很快重新加载。你知道吗
相关问题 更多 >
编程相关推荐