1 min read

用R语言进行文件系统管理

R语言可以进行文件系统管理, 之前以为就Python比较编程的语言可以,其实R也可以,这样处理R的文件时,真方便,真开心。

getwd()
## [1] "D:/work/blog_181126/content/post"

文件内容是file A\n表示换行

cat('file A\n', file='A') # 创建一个文件A
cat('file B\n', file='B') # 创建一个文件B
file.append('A', 'B') #将文件B的内容附到A内容的后面,注意没有空行 
## [1] TRUE
file.create('A') #创建一个文件A, 注意会覆盖原来的文件 
## [1] TRUE
dir.create('tmp') #创建名为tmp的文件夹 
file.append('A', rep('B', 10)) #将文件B的内容复制10便,并先后附到文件A内容后 
##  [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
file.show('A') #新开工作窗口显示文件A的内容
file.copy('A', 'C') #复制文件A保存为C文件,同一个文件夹 
## [1] TRUE
file.copy(c('A', 'B'),'tmp') #将文件夹拷贝到tmp文件夹中 
## [1] TRUE TRUE
list.files('tmp') #查看文件夹tmp中的文件名 
## [1] "A" "B"
unlink('tmp', recursive=FALSE) #如果文件夹tmp为空,删除文件夹tmp 
unlink('tmp', recursive=TRUE) #删除文件夹tmp,如果其中有文件一并删除 
file.remove('A','B','C') #移除三个文件
## [1] TRUE TRUE TRUE

批量删除文件

如批量删除文件含有beta的文件。

dir() %>% 
  str_subset('beta') %>% 
  file.remove()

整理文档,计算视频时间

# getwd()C
'/Users/JiaxiangLi/Downloads/电影' %>% 
  list.files(full.names = T) %>%
  file.info() %>%
  # system(intern = TRUE) %>%
  summarise(sum(size))/1000/1000/1000

full.names:
a logical value. If TRUE, the directory path is prepended to the file names to give a relative file path. If FALSE, the file names (rather than paths) are returned.

R删除其他格式的文件是不可以的

you probably have the file opened via another program.exe – amonk Jun 23 ’17 at 13:21

list.files() %>% 
  as_data_frame() %>% 
  filter(!value %in% str_subset(value, '.Rmd')) %>% 
  filter(value %in% str_subset(value, '.tmp')) %>% 
  .$value %>% 
  file.remove()

只看文件,不看文件夹

list.files()[!dir.exists(list.files())]