R开发(part9)--文件系统管理

学习笔记,仅供参考,有错必纠

参考自:《R的极客理想》-- 张丹


文章目录

    • R开发
      • 文件系统管理
        • 查看目录
        • 创建目录
        • 检查目录是否存在
        • 重命名以及删除目录
        • 其他目录操作
        • 查看文件
        • 创建、重命名及删除文件
        • 几个特殊的目录



R开发


文件系统管理


计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据,不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。


查看目录


#当前的目录
getwd() 

#查看当前目录的子目录
list.dirs() 

#查看当前目录的子目录和文件
dir()

#查看指定目录的子目录和文件
dir(path = "C:/Users/goatbishop/Desktop/data")

#只列出以字母t开头的子目录或文件
dir(path = "C:/Users/goatbishop/Desktop/data", pattern = "^t")

#列出目录下所有的目录和文件, 包括隐藏文件
dir(path = "C:/Users/goatbishop/Desktop/data", all.files = TRUE)

#查看当前目录的子目录和文件的另一种方式
list.files()
list.files(".", all.files = TRUE)

创建目录


# 在当前目录下,新建一个目录
dir.create("test")
#查看当前目录的子目录
list.dirs()
#创建一个3级子目录./a1/b2/c3
#直接创建会无法创建成功
dir.create(path = "a1/b2/c3")
#需要用递归来创建
dir.create(path = "a1/b2/c3", recursive = TRUE)
#查看目录结构
system("tree")

检查目录是否存在


file.exists(".") #TRUE
file.exists("./a1/b2") #TRUE
file.exists("./sdf") #FALSE

重命名以及删除目录


#将目录test重命名为test1
file.rename("test", "test1")
#递归删除test1目录
unlink("test1", recursive = TRUE)
#递归删除a1目录
unlink("a1", recursive = TRUE)

其他目录操作


#递归删除test1目录
unlink("test1", recursive = TRUE)
#递归删除a1目录
unlink("a1", recursive = TRUE)

#拼接目录字符串
file.path("p1", "p2", "p3") #"p1/p2/p3"

getwd() #"F:/MyStudio/Rstudio/StudyProject"
#获取最底层的子目录名
basename(getwd()) #"StudyProject"

查看文件


#检查文件是否存在
file.exists(".gitignore") #TRUE
file.exists("test.txt") #FALSE

#查看文件完整信息
file.info(".gitignore")
#输出start
size    isdir    mode      mtime       ctime       atime
.gitignore   44 FALSE  666 2020-08-09 09:30:52 2020-08-09 09:30:52 2020-08-09 09:30:52
   exe
.gitignore  no
#输出end

#判断是否是目录
file_test("-d", ".gitignore") #FALSE
file_test("-d", "input") #TRUE

#判断是否是文件
file_test("-f", ".gitignore") #TRUE
file_test("-f", "input") #FALSE

创建、重命名及删除文件


dir() #"input" "output"  "R" "StudyProject.Rproj"
#创建一个空文件
file.create("A.txt")
#创建一个有内容的文件
cat("I'm fileB\n", file = "B.txt")
#读取文件
readLines("A.txt") #character(0)
readLines("B.txt") #"I'm fileB"

#把B.txt的内容重复3次, 添加到A.txt
file.append("A.txt", rep("B.txt", 3)) #TRUE TRUE TRUE
readLines("A.txt") #"I'm fileB" "I'm fileB" "I'm fileB"

#把A.txt复制到文件C.txt
file.copy("A.txt", "C.txt") #TRUE
readLines("C.txt") #"I'm fileB" "I'm fileB" "I'm fileB"

#文件重命名
file.rename("A.txt", "Arename.txt")

#删除文件
file.remove("Arename.txt", "B.txt", "C.txt")

几个特殊的目录


#打印R软件安装目录
R.home() #"F:/software/R-3.6.2"
#打印R软件bin的目录
R.home(component = "bin") #"F:/software/R-3.6.2/bin/x64"
#打印R软件doc的目录
R.home(component = "doc") #"F:/software/R-3.6.2/doc"

#打印核心包的目录
.Library #"F:/software/R-3.6.2/library"

#打印所有包的存放目录
.libPaths() #"F:/software/R-3.6.2/library"

#打印pryr包的存放目录
system.file(package = "pryr") #"F:/software/R-3.6.2/library/pryr"

你可能感兴趣的:(R语言)