python – 从文件中获取数据,而不是多次迭代它
发布时间:2020-12-16 22:48:47 所属栏目:Python 来源:网络整理
导读:我创建了以下函数来从文件中提取数据.它工作正常,但对于较大的文件来说速度很慢. def get_data(file,indexes,data_start,sieve_first = is_float): file_list = list(file) for i in indexes: d_line = i+data_start for line in file_list[d_line:]: if sie
我创建了以下函数来从文件中提取数据.它工作正常,但对于较大的文件来说速度很慢.
该文件可能如下所示(为清晰起见,添加了行号):
通过上面的例子,将产生1234570到1234572行. 由于我的文件很大,有一些我不喜欢我的功能. >首先是它将整个文件读入内存;我这样做,所以我可以使用行索引来解析数据. 我试图使用迭代器一次性完成文件,但却无法破解它.有什么建议? 最佳答案
如果你只需要文件的一小部分,我会使用itertools.islice.这个函数不会存储任何数据,而是存储你想要的数据.
这是一个例子:
如果您使用Python 3.3或更高版本,您还可以使用
这不会缓存您已经从文件中读取的行.如果您想这样做,我建议您将所有读取行存储在字典中,并将行号作为键,并且只在需要时从文件中提取数据. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |