从多个.txt文件或字典中读取大量数据是否更快?

时间:2018-01-12 00:43:20

标签: python python-3.x file dictionary

我正在开发一个个人项目(使用Python 3),它将检索美国任何城市的天气信息。我的程序提示用户输入任意数量的城市状态组合,然后检索天气信息并为输入的每个城市创建天气摘要。在幕后,我基本上是用户输入的状态,打开对应于该状态的.txt文件,然后获取与输入的城市相关联的天气代码,然后我在URL请求中使用查找该城市的天气信息。由于每个州都有一个.txt文件,我有50个.txt文件,每个文件都有大量的城市天气代码组合。

将算法保持在当前的状态会更快,或者将所有这些数据保存在字典中会更快吗?这就是我考虑将数据存储在字典中的方式:

info = {'Virginia':{'City1':'ID1','City2':'ID2'},'North Carolina':{'City3':'ID3'}} 

我很乐意提供一些代码或在必要时详细说明。

谢谢!

3 个答案:

答案 0 :(得分:0)

从文件中预加载数据几乎肯定要快得多,如果你正在为许多用户请求使用相同的python进程。如果进程只处理一个请求并退出,则此方法将更慢并且使用更多内存。对于“一”和“多”之间的一些请求,它们的速度大致相同。

对于这样的情况,我可能会使用sqlite,python具有内置支持。如果没有加载完整字典的时间和内存开销,它将比扫描文本文件快得多。

答案 1 :(得分:0)

如果您有一个大型数据文件,您将花费数天时间浏览文件并将值放在.py文件中。如果它是一个小文件,我会使用字典,但如果它是一个大文件.txt文件。

其他可能的解决方案是:

其他资源

Basic data storage with Python
https://docs.python.org/3/library/persistence.html
https://docs.python.org/3/library/pickle.html
https://docs.python.org/3/library/shelve.html

答案 2 :(得分:0)

拥有大量文本文件可能不是一个好主意,因为它会在大量或大量导演(y | ies)访问中变慢。但是如果您有大量数据记录,您可能希望选择一个中间解决方案,索引一个数据文件并在字典中加载索引。

相关问题