[英]Python: linecache file size limit?
我有一个很大的.txt 文件。 每个条目都在一个新行上。 我正在尝试访问该文件并遍历每一行以获取条目。 但是,当我使用linecache.getline('file_path', 1)
时,我得到一个空字符串。 Python 文档中的哪一个是linecache
返回错误的方式。 有文件大小限制吗? 我正在尝试读取一个 1.2GB 的文件。 我也相当确定linecache
在获得行号之前仍在尝试将整个文件读入 memory 。 RAM 使用率上升大约文件的大小,然后恢复正常。 我对linecache
做错了什么? 除了linecache
之外还有什么建议吗?
如果您只是想逐行读取文件,而不是将其加载到 memory 中,则 python open
带有自己的生成器。
with open("filename", "r") as file:
for line in file:
# Do stuff
只要你在for
循环中做你必须做的事情,你就不必担心memory。
有关官方文档的更多信息
您需要做的就是使用文件 object 作为迭代器。
for line in open("log.txt"):
do_something_with(line)
with open("log.txt") as fileobject:
for line in fileobject:
do_something_with(line)
这也会自动关闭文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.