You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSV文件读取优化:如何连续跳行而非重复从头读取?

优化大CSV文件特定行读取的方案

原代码每次从头读取文件并重复跳过大量行,效率低下。可以通过保持文件连接的读取位置来避免重复操作,同时不加载整个文件到内存:

# 打开文件连接,持续跟踪读取位置
con <- file(filename, "r")

# 读取第1行的第一个元素
x1 <- read.csv(con, nrows = 1, header = FALSE)[1, 1]

# 跳过第2行到第100000行(共99999行),不输出无关内容
invisible(readLines(con, n = 99999))

# 读取第100001行的第一个元素
x2 <- read.csv(con, nrows = 1, header = FALSE)[1, 1]

# 跳过第100002行到第200000行(共99999行)
invisible(readLines(con, n = 99999))

# 读取第200001行的第一个元素
x3 <- read.csv(con, nrows = 1, header = FALSE)[1, 1]

# 关闭文件连接
close(con)

关键说明

  • file()创建的连接会保留读取进度,无需每次重新定位文件开头,大幅减少重复IO操作。
  • invisible(readLines(...))用于静默跳过指定行数,避免将无关行加载到内存占用资源。
  • 若CSV存在带换行符的复杂字段,readLines可能误判行数,此时可替换为read.csv(con, nrows = 1, skip = 99999, header = FALSE)[1,1],注意skip是基于当前连接位置的相对行数。

内容的提问来源于stack exchange,提问作者Řídící

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 23:07:08