我正在尝试遍历目录中的许多文件夹,查找隐藏在其中一个文件夹中的特定xml文件。然后我想保存该文件的位置,然后针对该文件运行我的代码(我不会在此包含该代码)。我在这里要问的是循环遍历所有文件夹,然后打开特定文件。 例如: 我的主文件夹是:C:\ Parsing 它有两个文件夹名为" folder1"和" folder2"。 每个文件夹都有一个我感兴趣的xml文件,让我们说它叫做#34; needed.xml" 我想有一个循环遍历目录的脚本并找到那些特定的脚本。 你知道我在R中的表现吗?
答案 0 :(得分:1)
使用list.files
和grepl
,您可以递归查看所有子文件夹
rootPath="C:\Parsing"
listFiles=list.files(rootPath,recursive=TRUE)
searchFileName="needed.xml"
presentFile=grepl(searchFileName,listFiles)
if(nchar(presentFile)) cat("File",searchFileName,"is present at", presentFile,"\n")
答案 1 :(得分:0)
这是你正在寻找的吗?
require(XML)
fol <- list.files("C:/Parsing")
for (i in fol){
dir <- paste("C:/Parsing" , i, "/needed.xml", sep = "")
if(file.exists(dir) == T){
needed <- xmlToList(dir)
}
}
这将找到您的xml文件并将其作为列表读入R中。如果您希望输出是数据本身,或者只是数据的目录位置,然后可以将其提供给另一个函数/脚本,我就不清楚您的问题。如果您只想要该位置,请删除&#39; xmlToList&#39;功能
答案 2 :(得分:0)
我会做这样的事情(如果需要,用你的filename.xml替换* .xml):
<head>
这会以递归方式查找路径list.files(path = "C:\Parsing", pattern = "*.xml", recursive = TRUE, full.names = TRUE)
中扩展名为.xml
的文件,并返回匹配文件的C:\Parsing
。