【发布时间】:2016-12-24 22:14:58
【问题描述】:
我必须读取文件中几乎有 100K 行的大型 CSV 文件,如果我能以字典格式读取每个文件行,处理该文件将非常容易。
经过一番研究,我从 csv 模块中找到了 python 的内置函数 csv.DictReader。
但在文档中并不清楚是否将整个文件存储在内存中。
但它已经提到:
fieldnames 参数是一个序列,其元素按顺序与输入数据的字段相关联。
但我不确定序列是否存储在内存中。
所以问题是,它是否将整个文件存储在内存中?
如果是这样,是否有任何其他选项可以从文件中读取单行作为通用表达式并将 get row 读取为 dict 。
这是我的代码:
def file_to_dictionary(self, file_path):
"""Read CSV rows as a dictionary """
file_data_obj ={}
try:
self.log("Reading file: [{}]".format(file_path))
if os.path.exists(file_path):
file_data_obj = csv.DictReader(open(file_path, 'rU'))
else:
self.log("File does not exist: {}".format(file_path))
except Exception as e:
self.log("Failed to read file.", e, True)
return file_data_obj
【问题讨论】:
标签: python-2.7 csv dictionary in-memory