首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python sas7bdat模块-迭代器还是内存密集型?

Python sas7bdat模块-迭代器还是内存密集型?
EN

Stack Overflow用户
提问于 2016-01-20 19:21:04
回答 1查看 1K关注 0票数 2

我想知道Python中的sas7bdat模块是创建迭代器类型的对象,还是将整个文件作为列表加载到内存中?我感兴趣的是对750‘t左右的.sas7bdat文件进行逐行处理,我真的不希望Python试图将整个文件加载到RAM中。

示例脚本:

代码语言:javascript
复制
from sas7bdat import SAS7BDAT
count = 0
with SAS7BDAT('big_sas_file.sas7bdat') as f:
 for row in f:
  count+=1

我也可以用

代码语言:javascript
复制
it = f.__iter__()

但我不确定这是否仍将通过内存密集型的数据负载。如果您了解sas7bdat的工作原理或处理此问题的其他方法,我们将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-20 19:29:44

您可以在比特桶上看到相关代码。docstring将迭代描述为一个“生成器”,查看代码,它似乎是在读取文件的小片段,而不是一次读取整个文件。但是,我对文件格式还不太了解,不知道是否存在可能导致它同时读取大量数据的情况。

如果您真的想在一个巨大的750 G文件上尝试之前了解它的性能,那么您应该通过创建几个大小越来越大的示例文件来测试它,看看它的性能如何与文件大小相匹配。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34908657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档