r - 遇到错误时从列表中删除文件名
问题描述
我有这个代码
library(plyr)
library(readxl)
library(XLConnect)
#Set the Path
layout_path <- "/rdrive/my_test/"
output_path <- "/rdrive/my_test/"
filenames <- list.files(path = layout_path , pattern="*xls", ignore.case=TRUE)
filecount <- length(list.files(path = layout_path, pattern="*xls", ignore.case=TRUE))
err_fs =
for (f in filenames) {
tryCatch(
{
nverr <- read_excel(paste(layout_path,f,sep=''), sheet = 1, col_names = FALSE, range = cell_cols("A:A"))
},
error=function(err) {
filenames[names(filenames) != f]
cat("File doesn't appear to open:", f, conditionMessage(err), "\n")
})
}
虽然其他一切似乎都在工作,但 filenames[names(filenames) != f] 无法从列表“文件名”中删除错误的文件名。我什至尝试了数字方法,但一切都在脉络中..可能是因为它在错误函数中吗?
感谢您是否可以建议出路。
解决方案
您可以创建一个向量来存储结果并"success"
在文件正确读取时将其转换为,并且在出现错误时将保持空白。
file_read <- character(length(filenames))
for (i in seq_along(filenames)) {
tryCatch(
{
nverr <- read_excel(paste(layout_path,filenames[i],sep=''), sheet = 1, col_names = FALSE, range = cell_cols("A:A"))
file_read[i] <- 'success'
},
error=function(err) {
cat("File doesn't appear to open:", f, conditionMessage(err), "\n")
})
}
然后,您可以删除不成功的文件。
newfilenames <- filenames[file_read != 'success']
推荐阅读
- python - 从 Flask 中的 HTTP POST 请求中读取图像文件并将其转换为 PIL 图像
- paypal - 如何获得访问令牌?- Flutter 中的 PayPal
- html - 不同状态Angular 6的图标颜色
- java - PALIN- 下一个回文 - 一个 SPOJ 问题
- sorting - 数值和字符串值的多级排序
- java - 在 Java Spring Boot 中将列表转换为分组列表
- c# - 使用键入用户自动完成组合框并从数据库中获取相关数据
- reactjs - 尝试将 AWS Lex 聊天机器人嵌入 React 站点,失败并出现错误:配置中缺少凭证(有关详细信息,请参阅控制台)
- facebook - Django-allauth:显示进度条的 Facebook 弹出窗口
- c++ - period 必须是 C++17 chrono 库中比率的专门化吗?