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

如何在R中读取含换页符(\f)的文本文件并按分页生成数据框

解决R中按PDF换页符(\f)拆分文本生成数据框的问题

单个文件处理方案

直接读取完整文件内容,合并所有行后按换页符拆分,再转成数据框:

# 替换为你的目标文件路径
file_path <- "your_file.txt"

# 读取文件所有行,合并为单个字符串(保留普通换行,消除其拆分影响)
full_content <- paste(readLines(file_path, warn = FALSE), collapse = "\n")

# 按换页符\f拆分内容,得到每一页的文本
page_list <- strsplit(full_content, split = "\\f")[[1]]

# 转换为数据框,每行对应PDF的一页
page_df <- data.frame(page_content = page_list, stringsAsFactors = FALSE)

批量处理文件夹中所有txt文件

如果要处理文件夹下的多个txt文件,可以用批量处理函数:

# 替换为你的文件夹路径
folder_path <- "your_folder_path"

# 获取文件夹内所有txt文件的完整路径
txt_files <- list.files(path = folder_path, pattern = "\\.txt$", full.names = TRUE)

# 定义处理单个文件的函数
process_single_file <- function(path) {
  content <- paste(readLines(path, warn = FALSE), collapse = "\n")
  pages <- strsplit(content, split = "\\f")[[1]]
  # 返回包含文件名和页内容的数据框,方便溯源
  data.frame(
    source_file = basename(path),
    page_content = pages,
    stringsAsFactors = FALSE
  )
}

# 批量处理所有文件并合并结果
all_pages_df <- do.call(rbind, lapply(txt_files, process_single_file))

关键说明

  • readLines(..., warn = FALSE):读取文件所有行,关闭编码相关警告(如果遇到编码问题,可以指定encoding参数,比如encoding = "UTF-8")
  • paste(..., collapse = "\n"):把普通换行保留在文本内容中,但不会将其作为行分隔符,确保只有换页符才会拆分内容
  • strsplit(..., split = "\\f"):\f是正则表达式中的特殊字符,需要用双反斜杠转义,这样才能准确匹配换页符完成拆分

内容的提问来源于stack exchange,提问作者gosling3

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:20:34