【发布时间】:2019-11-22 11:41:35
【问题描述】:
我正在为 13K pdf 文件执行循环,它在其中读取、预处理文本、查找相似性并写入 txt。但是,当我运行 for 循环时,它会给出错误
Error in poppler_pdf_text(loadfile(pdf), opw, upw) : Not enough space
可能是什么原因?
- 我尝试增加
memory_limit(),也不是问题。 - 我试图删除文件夹中的隐藏文件,如
Thumbs.db,但同样的问题再次出现。 - 我在每次迭代时删除 pdf 文件。
folder_path <- "C: ...."
## get vector with all pdf names
pdf_folder <- list.files(folder.path)
## for loop over all pdf documents
for(s in 1:length(pdf_folder)){
## choose one pdf document from vector of strings
pdf_document_name <- pdf_folder[s]
## read pdf_document pdf into data.frame
pdf <- read_pdf(paste0(folder_path,"/",pdf_document_name))
print(s)
rm(pdf)
} ## end of for loop
# Error:
Error in poppler_pdf_text(loadfile(pdf), opw, upw) : Not enough space
预期的结果是读取原路径中的所有pdf文档。
【问题讨论】:
-
不确定是什么导致了该错误,但底层硬盘驱动器上有多少可用空间?
-
您知道失败的特定文件吗?可能是那个特定文件的问题。
-
按照@cory 所说的,您可以尝试在
print(s)之前的循环中插入一个计数器,如下所示:cat("counter: ", s)。然后您将能够查看循环失败的位置,并调查该 pdf 文件。尽管这似乎是一个内存问题,但您可以查看您的计算机可以处理多少文件,并将循环分块分成几部分,以免内存不足运行一次性完成。 -
pdf 文件完全是机器可读的。
-
@r2evans on C:我有大约 1 GB 的可用空间。
标签: r batch-processing