12.2 fs package
fsgithub项目地址,fs为文件系统操作提供了一个跨平台的统计接口。本节基本从fs项目照搬demo。
12.2.1 安装
使用以下命令从CRAN安装
install.packages("fs")
安装来自GitHub的开发版本,其中包括:
# install.packages("devtools")
::install_github("r-lib/fs") devtools
12.2.2 优势
相比base R相同功能,fs包的优势:
- 向量化。所有fs的函数都是矢量化的,可以批量操作。
- 编码一致性。fs将输入的路径统一转化为UTF-8。
- 函数名一致性。fs函数使用一致的命名约定。
- 函数使用返回“tidy”paths,整洁的路径,和tidyverse一脉相承的概念。
12.2.3 基础用法
fs函数主要有四大类:
path_
系列用于路径构造file_
系列用于文件dir_
系列用木目录link_
系列用于链接
目录和链接是文件的特殊类型,因为file_
在用于目录和链接时,功能通常可以使用。
library(fs)
# `path()`函数构造路径
path('事业部',c('华东','华西','华南','华北'),'周补货数据')
#> 事业部/华东/周补货数据 事业部/华西/周补货数据 事业部/华南/周补货数据 事业部/华北/周补货数据
# 当前目录文件列表
dir_ls()
#> 01-datatable.Rmd 02-database.Rmd 03-strings.Rmd
#> 04-lubridate.Rmd 05-forcats.Rmd 06-tidy-data.Rmd
#> 07-Data-manipulation.Rmd 08-loop.Rmd 09-iteration.Rmd
#> 10-function.Rmd book.bib data
#> Data-Handling-in-R.log Data-Handling-in-R.Rmd Data-Handling-in-R_files
#> desktop.ini file-manipulation.Rmd index.Rmd
#> packages.bib picture preamble.tex
#> Rbook.Rmd Rbook.Rproj read-write-data.Rmd
#> README.md rsconnect style.css
#> _book _bookdown.yml _bookdown_files
#> _common.R _output.yml
# 以Rmd结尾的文件
dir_ls(regexp = 'Rmd$')
#> 01-datatable.Rmd 02-database.Rmd 03-strings.Rmd
#> 04-lubridate.Rmd 05-forcats.Rmd 06-tidy-data.Rmd
#> 07-Data-manipulation.Rmd 08-loop.Rmd 09-iteration.Rmd
#> 10-function.Rmd Data-Handling-in-R.Rmd file-manipulation.Rmd
#> index.Rmd Rbook.Rmd read-write-data.Rmd
# 创建一个文件夹
<- dir_create(file_temp())
tmp
tmp#> C:/Users/zhongyf/AppData/Local/Temp/RtmpAd7GkL/file38404dd1456f
# 在文件夹中创建文件
file_create(path(tmp, "my-file.txt"))
dir_ls(tmp)
#> C:/Users/zhongyf/AppData/Local/Temp/RtmpAd7GkL/file38404dd1456f/my-file.txt
# 从文件夹中删除文件
file_delete(path(tmp, "my-file.txt"))
dir_ls(tmp)
#> character(0)
# 删除文件
dir_delete(tmp)