當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。