r - 迭代大量文件时出现 readLines 错误
问题描述
我需要遍历一些文件(实际上很多)并通过 gsub 修复一些问题。
library(xml2)
library(magrittr)
lapply(list.files(folder, full.names = TRUE), function(file){
tryCatch(a1 <- xml2::read_xml(file),
error = function(e){
fix_to_write <- readLines(file) %>%
gsub("&", "and", .)
writeLines(fix_to_write, file)
})
})
问题是过了一会儿我得到它无法打开我的文件的错误::
在 readLines(file_to_open) 中: kann Datei '/Volumes/data/welt/xml_out/2012-02/13858485.xml' nicht öffnen:打开文件太多: 打开的文件太多
我尝试了各种解决方案,例如“closeAllConnections()”或“close(file)”。没有任何效果。有什么建议么?我在Mac上工作...
问候
解决方案
只是一个猜测,因为我自己从未遇到过这个问题,但我认为这应该可行:
lapply(list.files(folder, full.names = TRUE), function(file){
tryCatch(a1 <- xml2::read_xml(file),
error = function(e){
con <- file(description = file)
fix_to_write <- readLines(file) %>%
gsub("&", "and", .)
close(con)
writeLines(fix_to_write, file)
})
})
readLines
如果提供了字符串,实际上将打开到文件的连接。这应该在退出时关闭,但明确地这样做可能更有意义。让我知道这是否有帮助。
推荐阅读
- c - 使用 C 创建二维数组/矩阵
- java - Google reCaptcha loading using BrowsermobProxy
- c - 将整数指针传递给函数时出现分段错误
- qt - 在 Qt::ToolButtonIconOnly 和 Qt::ToolButtonTextBesideIcon 之间切换时垂直 QToolbar 中图标的位置
- python - 跨文件访问私有属性 - 理解错误,Python 3.8.2
- python-3.x - how to compare to two json files and return a un matched key and value in object
- angular - How to wait until app is loaded after nativescript firebus push notification received
- python - Create TFLite file with InceptionV3 and Food101
- haskell - Is implementing the words function possible without a postprocessing step after folding?
- javascript - Firebase verify and reset password without sending separate mails