微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将大文本文件加载到 Python 列表时管理内存

如何解决将大文本文件加载到 Python 列表时管理内存

我有一个 1.5 GB 的文本文件,我使用以下代码将其从磁盘加载到内存中

docs = []
with open("full_text_corpus.txt","r") as file:
  for line in file:
    docs.extend((line.strip().strip("][").replace("'","")).split(","))

使用下面的代码检查 docs 变量占用的大小给了我 1.5GB 代码

from sys import getsizeof
print(f"Size of docs list is {getsizeof(docs) / (1024 **3)} GB")

我在 Google Colab 上运行它,但它显示占用的 RAM 大约为 14GB,这怎么可能?

如果我运行此代码,它也会给我 14.65 GB。 代码

import os,psutil
process = psutil.Process(os.getpid())
print(process.memory_info().RSS / (1024**3))  # in bytes 

我无法理解这是如何工作的?如果 docs 变量只有 1.5GB,为什么要使用 14GB 的内存?有没有办法释放内存?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。