在R循环中命名文件
我有多个音频文件,它们保存在我工作目录的几个子文件夹中。我有一个循环,在第一分钟读取每个文件,然后将它们保存为新文件在R循环中命名文件,r,loops,audio,R,Loops,Audio,我有多个音频文件,它们保存在我工作目录的几个子文件夹中。我有一个循环,在第一分钟读取每个文件,然后将它们保存为新文件 library(tuneR) dir.create("New files") FILES<-list.files(PATH, pattern = "audio", recursive = TRUE) for(i in 1:length(FILES)){ OneMIN <- readWave(FILES[i], from = 0, to = 60, units
library(tuneR)
dir.create("New files")
FILES<-list.files(PATH, pattern = "audio", recursive = TRUE)
for(i in 1:length(FILES)){
OneMIN <- readWave(FILES[i], from = 0, to = 60, units = "seconds")
writeWave(OneMIN, filename = (file=paste0(FILES[i], "_1-min.wav")))
}
库(调谐器)
创建目录(“新文件”)
文件可以使用file.path()
函数将目录和文件名组合到单个文件路径中,而sub()
函数将允许您轻松修改文件名:
library(tuneR)
dir.create("New files")
FILES <- list.files(PATH, pattern = "audio", recursive = TRUE)
for(infile in FILES){
OneMIN <- readWave(infile, from = 0, to = 60, units = "seconds")
outfile <- file.path("New files", sub('.wav', '_1-min.wav', infile))
writeWave(OneMIN, filename=outfile)
}
以及:
outfile认为我会发布我的解决方案,它借鉴了@Keith Hughitt的答案和@lmo的评论。感谢他们两人帮我解决了我需要的问题
for(i in 1:length(FILES)){
OneMIN <- readWave(FILES[i], from = 0, to = 60, units = "seconds")
FILE.OUT <- sub("\\.wav$", "_1 min.wav", FILES)
OUT.PATH <- file.path("New files", basename(FILE.OUT))
writeWave(OneMIN, filename = OUT.PATH[i])
}
for(1中的i:长度(文件)){
OneMINfillesOut@lmo,第一部分运行良好,但第二部分出现错误;file中的错误(文件名,“wb”):无法打开连接另外:警告消息:in file(文件名,“wb”):无法打开文件“./Newfiles/2017-01-05/File1_1 min.wav”:没有这样的文件或目录
请查看我评论的后半部分。请参阅?dir.create
。
outfile <- file.path("New files", sub('.wav', '_1-min.wav', basename(infile)))
for(i in 1:length(FILES)){
OneMIN <- readWave(FILES[i], from = 0, to = 60, units = "seconds")
FILE.OUT <- sub("\\.wav$", "_1 min.wav", FILES)
OUT.PATH <- file.path("New files", basename(FILE.OUT))
writeWave(OneMIN, filename = OUT.PATH[i])
}