在批量处理数据时,通常需要对文件或文件夹进行操作,下面将R语言中处理文件和文件夹的常用函数整理一下。
1、工作路径
getwd() 列出当前工作路径;
setwd(dir) 设置工作路径,参数dir是要设置的路径。
2、列出目录下文件
函数list.files和dir用法完全一样,可以列出路径下所有文件(包括目录);函数list.dirs只列出路径下所有目录。
list.files(path =".", pattern = NULL, all.files = FALSE,
full.names = FALSE, recursive =FALSE,
ignore.case = FALSE, include.dirs =FALSE, no.. = FALSE)
dir(path =".", pattern = NULL, all.files = FALSE,
full.names = FALSE, recursive = FALSE,
ignore.case = FALSE, include.dirs = FALSE,no.. = FALSE)
list.dirs(path =".", full.names = TRUE, recursive = TRUE)
参数:
path 路径,如不填则默认为当前工作路径,即getwd()得到的路径;
pattern 正则表达式,若pattern不为NULL,返回文件(目录)名满足该正则表达式的文件(目录);
all.files 若为FALSE则不显示隐藏文件(目录),若为TRUE则返回所有文件(目录);
full.names 若为FALSE则只返回文件(目录)名,若为TRUE则返回文件(目录)路径;
recursive 若为FALSE则只返回该路径的子级文件(目录),若为TRUE则返回所有子、孙文件(目录);
ignore.case 若为TRUE则在匹配pattern时不区分大小写;
include.dirs 在recursive为TURE,即显示所有子、孙文件时,若include.dirs为FALSE则只列出最终端的文件名,而不列出中间层级的目录名;
no.. 若为TRUE,则不显示“.”和“..”。
3、新建目录
dir.create 用于新建目录
dir.create(path, showWarnings = TRUE, recursive = FALSE,mode = "0777")
函数默认recursive为FALSE,即只新建path中的第一级子目录,而当recursive为TRUE时可以新建多级子目录。
值得注意的是,当目录已存在时不会新建目录覆盖原先的目录,此时如果showWarnings为TRUE,则会提醒该目录已存在,为FALSE时不会提醒。
另外,参数mode是个Unix-alike参数。
4、复制
file.copy用于复制文件
file.copy(from, to, overwrite = recursive, recursive = FALSE,copy.mode = TRUE, copy.date = FALSE)
from是原始文件(目录)名,to是新文件(目录)名,二者可以是vector,但是长度需相同;
overwrite 若为TRUE,则文件被覆盖;
recursive 复制目录时recursive需为TRUE;
copy.mode若为TRUE,permission bits一并复制过来;
copy.date若为TRUE,文件日期一并复制过来。
5、删除
函数unlink可以用来删除文件或目录,函数file.remove可以用来删除文件。
unlink(x, recursive = FALSE, force = FALSE)
x是要删除的文件或目录,可以是vector(即批量删除);当删除目录时,recursive应为TRUE,表示目录内文件一并删除。
6、重命名
file.rename用于重命名
file.rename(from, to)
from是原始文件(目录)名,to是新文件(目录)名,二者可以是vector,但是长度需相同。
7、查看文件是否存在
dir.exists(paths)
file.exists(paths)
参数paths可以是vector,即可以批量查看文件(目录)是否存在。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!