Loading...
墨滴

yuanzhoulvpi

2021/07/11  阅读:36  主题:橙心

R文件系统

R文件系统(R的一些处理文件的操作代码)

背景

虽然现在很多人都在使用python去做一些控制系统文件的事情,但是R其实也可以做到,并且做的也不差,这次就是列举了R操作文件、文档的函数。

获得、修改当前的工作目录

这个是非常常见了,主要是getwd()setwd(dir = "xxxxx")。一个是查看,一个是修改,但是我很少使用这个东西,因为我一般使用的都是Rstudio的项目来做,这个其实是有很多好处的。大家可以看我之前的文章。

创建文件、文件夹

如果要是创建一个文件夹,可以使用这个命令:dir.create(path = "folder0711")

如果要是创建一个文件,可以使用这个命令:file.create("new_file_0711.txt"),这就可以在当前的工作目录中创建一个文件。 创建文件的时候,注意不要创建二进制文件,比如创建一个excel文件,但是excel竟然打不开。

复制文件、文件夹

使用file.copy(from = "code0624.R", to = "all_stickes_0710")可以将一个R文件复制到另外一个文件夹中,注意的是file.copy的第一个参数是文件名字或者文件夹名字,to代表目标文件夹。

如果是要将一个文件夹复制到另外一个文件夹,比如这个代码:file.copy(from = "allexceldata", to = "all_stickes_0710", recursive = TRUE)。第一个from是一个文件夹的位置,to是代表目标文件夹,recursive这个参数一定要设置为TRUE。这样才能保证allexceldata整个文件夹(文件夹和文件夹内的内容)都复制到目标文件夹中。

列出文件夹内的所有文件、文件夹

要实现这个功能,我觉得使用list.files函数是最方便的。比如下面的这个代码:list.files(path = "all_stickes_0710", full.names = TRUE, recursive = TRUE),我们就可以查看all_stickes_0710文件夹中的所有文件内容,但是一般来说我们是不指定full.namesrecursive这两个参数的,full.names可以将这个文件夹中所有文件的相对路径都展示出来,recursive参数会将这个文件夹所有二级、三级等所有文件夹中的内容都展开,可以使用这个函数检测一下window系统盘的文件内容,就大概可以明白了。

当然,list.files函数里面还有一个参数叫pattern,list.files(path = "all_stickes_0710", full.names = TRUE, recursive = TRUE, pattern = '.xlsx'),这样做就可以将这个文件夹中所有以xlsx结尾的文件的相对路径都匹配上。是不是非常简单。

很明显,list.files函数是看这个文件夹中的文件的,但是使用list.dirs()函数可以查看这个文件夹中所有的文件。也是很有趣的函数。

检测文件、文件夹是否存在

检验文件是否存在,可以使用file.exists('c/data/test.xlsx')

检验文件夹是否存在,可以使用dir.exists('new_folder_0711')

删除文件夹、文件

删除文件,可以使用这个代码:unlink('test_file.xlsx')

删除文件夹,依然使用unlink函数,但是需要加上recursive = TRUE,比如说,我要删除一个文件夹,我就需要这么写:unlink(x = "folder0711", recursive = TRUE).

查看文件夹内的所有情况

有的时候,我们想看一个文件夹下有什么内容,这个文件夹是什么时候创建的、什么时候修改的、什么时候访问过。这个文件夹下每一个文件\文件夹的创建、查看、修改的时间等。那么就可以使用fileSnapshot()函数。

snapshot_directory <- fileSnapshot(full.names = TRUE)
snapshot_directory_info <- snapshot_directory$info
rownames(snapshot_directory_info)

filesSnapshot的第一个参数就是要查看的文件夹名字或者位置,如果不指定的话,默认就是当前的工作目录。 如果你运行了代码,查看snapshot_directory_info,就可以展示这个文件夹下的一级目录里面的内容。

  1. size这一列指的是每一个文件\文件夹的大小。
  2. isdir指的是这个文件是否为文件夹还是文件。
  3. mtime指的是修改这个文件的时间。
  4. ctime指的是创建这个文件的时间。
  5. atime指的是最后一次访问这个文件的时间。

另外,如果想查看文件的相关内容,也可以使用file.infofile.ctimefile.mtime等函数查看。其实非常的简单。

yuanzhoulvpi

2021/07/11  阅读:36  主题:橙心

作者介绍

yuanzhoulvpi