首页 > 解决方案 > 循环读取大文本文件

问题描述

我有一个 30GB 的大文件要处理。

我试图逐行读取它,因为它无法加载到内存中。

base::readLines并且readr::read_lines_chunked只能从第一行开始读取块并在最后一行结束。

我想做的是指定如下内容:

read lines 1:100
read lines 101:200
read lines 201:300
read lines 301:400
...
until the end of the file

如果我可以指定要读入的确切行,我可以在循环中执行此操作,但我认为上述函数都不允许这样做。

有没有办法做到这一点?

中的skip参数readr:read_lines_chunked允许跳过n数据文件中的第一行,但我需要的是跳过第一行n和最后m一行。

例如,如果文件有1000行:

跳过第一个100和最后一个800会读入101-200

标签: rtidyverselarge-datachunks

解决方案


感谢@JamesB,解决方案是:

library("LaF")
get_lines(file, line_numbers=c(100,101))

推荐阅读