当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R tempfile 为临时文件创建名称


R语言 tempfile 位于 base 包(package)。

说明

tempfile 返回一个字符串向量,可用作临时文件的名称。

用法


tempfile(pattern = "file", tmpdir = tempdir(), fileext = "")
tempdir(check = FALSE)

参数

pattern

给出名称开头部分的非空字符向量。

tmpdir

给出目录名称的非空字符向量

fileext

给出文件扩展名的非空字符向量

check

logical 指示 tmpdir() 是否应检查并重新创建(如果不再有效)。

细节

结果的长度是三个参数长度中的最大值;较短参数的值会被回收。

这些名称很可能在调用中是唯一的tempfile在一个R会话和跨同步R会话(除非tmpdir已指定)。保证文件名当前未被使用。

文件名是通过连接 tmpdir 给出的路径、pattern 字符串、十六进制随机字符串和 fileext 后缀而成的。

默认,tmpdir将是由给出的目录tempdir()。这将是按以下规则找到的每会话临时目录的子目录:R会话开始。环境变量TMPDIR,TMPTEMP依次检查并使用第一个找到的指向可写目录的:如果没有成功'/tmp' 用来。该路径不得包含空格。请注意,在R会话没有影响tempdir():每个会话的临时目录是在解释器启动之前创建的。

对于tempfile,字符向量给出可能的(临时)文件的名称。请注意,tempfile 不会生成任何文件。

对于 tempdir ,每个会话临时目录的路径。

在 Windows 上,两者都将使用反斜杠作为路径分隔符。

在类似 Unix 的系统上,该值将是绝对路径(除非 tmpdir 设置为相对路径),但它不必是规范的(请参阅 normalizePath ),而在 macOS 上通常不是。

并联使用注意事项

R由诸如以下的函数分叉的进程mclapplymakeForkCluster包装内parallel共享每个会话的临时目录。此外,“保证当前不在使用”仅适用于询问时,两个孩子可以同时询问。这是通过确保tempfile在不同的孩子叫声中尝试不同的名字。

例子


tempfile(c("ab", "a b c"))   # give file name with spaces in!

tempfile("plot", fileext = c(".ps", ".pdf"))

tempdir() # works on all platforms with a platform-dependent result


## Show how 'check' is working on some platforms:
if(exists("I'm brave") && `I'm brave` &&
   identical(.Platform$OS.type, "unix") && grepl("^/tmp/", tempdir())) {
  cat("Current tempdir(): ", tempdir(), "\n")
  cat("Removing it :", file.remove(tempdir()),
      "; dir.exists(tempdir()):", dir.exists(tempdir()), "\n")
  cat("and now  tempdir(check = TRUE) :", tempdir(check = TRUE),"\n")
}

来源

tempdir() 的最终组件由 POSIX 系统调用 mkdtemp 创建,或者如果该组件不可用(例如在 Windows 上),则从 GNU glibc 的源代码派生版本。

其形式为‘RtmpXXXXXX’ 其中最后 6 个字符以特定于平台的方式替换。 POSIX 仅要求替换为 ASCII,这允许.(因此该值可能看起来有文件扩展名)并且正则表达式元字符,例如+。最常见的替代品来自正则表达式图案[A-Za-z0-9], 但. 被看见了。

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

unlink 用于删除文件。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Create Names for Temporary Files。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。