利用R语言批量修改文件名file.rename函数

利用R语言批量修改文件名file.rename函数

R语言中文件操作的函数有:

file.create(…, showWarnings = TRUE)
file.exists(…)
file.remove(…)
file.rename(from, to)
file.append(file1, file2)
file.copy(from, to, overwrite = recursive, recursive = FALSE,
copy.mode = TRUE, copy.date = FALSE)
file.symlink(from, to)
file.link(from, to)
Sys.junction(from, to)

file.rename()函数使用方法:file.rename(源文件名,修改的文件名),此处文件名必须为character格式可以用as.character()函数将data.frame等格式转换。

其他用法:

umxRenameFile <- function(baseFolder = "Finder", findStr = NA, replaceStr = NA, listPattern = NA, test = T, overwrite = F) {
    # uppercase = u$1
    if(baseFolder == "Finder"){
        baseFolder = system(intern = T, "osascript -e 'tell application \"Finder\" to get the POSIX path of (target of front window as alias)'")
        message("Using front-most Finder window:", baseFolder)
    } else if(baseFolder == "") {
        baseFolder = paste(dirname(file.choose(new = FALSE)), "/", sep = "") ## choose a directory
        message("Using selected folder:", baseFolder)
    }
    if(is.na(listPattern)){
        listPattern = findStr
    }
    a = list.files(baseFolder, pattern = listPattern)
    message("found ", length(a), " possible files")
    changed = 0
    for (fn in a) {
        findB = grepl(pattern = findStr, fn) # returns 1 if found
        if(findB){
            fnew = gsub(findStr, replace = replaceStr, fn) # replace all instances
            if(test){
                message("would change ", fn, " to ", fnew)  
            } else {
                if((!overwrite) & file.exists(paste(baseFolder, fnew, sep = ""))){
                    message("renaming ", fn, "to", fnew, "failed as already exists. To overwrite set T")
                } else {
                    file.rename(paste(baseFolder, fn, sep = ""), paste(baseFolder, fnew, sep = ""))
                    changed = changed + 1;
                }
            }
        }else{
            if(test){
                # message(paste("bad file",fn))
            }
        }
    }
    message("changed ", changed)
}

如若转载,请注明出处:https://www.ouq.net/%e5%88%a9%e7%94%a8r%e8%af%ad%e8%a8%80%e6%89%b9%e9%87%8f%e4%bf%ae%e6%94%b9%e6%96%87%e4%bb%b6%e5%90%8dfile-rename%e5%87%bd%e6%95%b0.html

(6)
打赏 微信打赏,为服务器增加100M流量 微信打赏,为服务器增加100M流量 支付宝打赏,为服务器增加100M流量 支付宝打赏,为服务器增加100M流量
上一篇 2020年3月24日 上午12:54
下一篇 2020年3月26日 上午1:28

相关推荐

  • R:计算data.frame数据row均值

    R计算data.frame行row平均方法有2种 :rowMeans()和apply() 创建data.frame,计算平均分Avg_score df1 = data.frame(…

    2020年3月20日
  • RStudio开发环境下载安装

    RStudio是为R语言设计的一种跨平台集成开发环境。其特色包括可客制化的软件套件视觉化界面与同团队开发的一系列数据可视化与出版工具。RStudio有免费的自由软件版本及收费的专业…

    2020年3月12日
  • 空间转录组学分析包-Spatial transcriptomics Packages

    Merfishtools – [Python] – MERFISHtools implement a Bayesian framework for accu…

    R 2022年3月2日
  • R:字符大小写转换

    R:字符大小写转换 >x = “CAGGGT” #定义字符串变量x >tolower(x) [1] “caggt” #将…

    R 2021年8月10日
  • R:gene symbol与id转换

    利用R将gene symbol与id转换 安装所需包 if (!requireNamespace(“BiocManager”, quietly = TRUE…

    2020年3月16日