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


R seek 重新定位連接的函數

R語言 seek 位於 base 包(package)。

說明

重新定位連接的函數。

用法

seek(con, ...)
## S3 method for class 'connection'
seek(con, where = NA, origin = "start", rw = "", ...)

isSeekable(con)

truncate(con, ...)

參數

con

connection

where

數字。文件位置(相對於 origin 指定的原點)或 NA

rw

字符串。空或 "read""write" ,允許部分匹配。

origin

字符串。 "start""current""end" 之一:請參閱“詳細信息”。

...

傳入或傳出其他方法的進一步參數。

細節

seekwhere = NA 返回連接的當前字節偏移量(從頭開始),並且使用非缺失的 where 參數,連接將重新定位(如果可能)到指定位置。 isSeekable 返回連接原則上是否支持 seek :當前僅(可能是 gz-compressed)文件連接支持。

where存儲為實數,但應表示整數:非整數值可能會被截斷。請注意,可能的值可能超過最大可表示數R integer在 64 位版本和某些 32 位版本上。

文件連接可以打開以進行寫入/追加,在這種情況下R保持不同的閱讀和寫作位置。哪個seek指的是可以通過其設置rw參數:默認值是最後使用的模式(讀取或寫入)。大多數文件僅打開用於讀取或寫入,因此默認為該狀態。如果一個文件以讀寫方式打開但尚未使用,則默認為讀取位置 (0)。

讀取的初始文件位置始終位於開頭。對於 "r+""r+b" 模式,寫入的初始位置位於文件的開頭,否則位於文件的末尾。某些平台僅允許在追加模式下在文件末尾寫入。 (以追加模式打開的文件的報告寫入位置通常不可靠,直到文件被寫入為止。)

gzfile 連接支持 seek,但有許多限製,使用未壓縮文件的文件位置。他們不支持origin = "end"。寫入時,隻能向前查找:讀取時,通過倒帶文件並從頭開始重新讀取來支持向後查找。

如果使用 where 的非 NA 值調用 seek,則文本模式連接上的任何推送都會被丟棄。

truncate 截斷在當前位置打開以進行寫入的文件。它僅適用於 file 連接,並且並未在所有平台上實現:在其他平台(包括 Windows)上,它不適用於大型(> 2Gb)文件。

這些都不應該在選擇重新編碼的文本模式連接上工作。

seek返回當前位置(在任何移動之前),作為距原點的(數字)字節偏移量(如果相關),或者0如果不。請注意,該位置可能超過一個中的最大可表示數字R integer在 64 位版本和某些 32 位版本上。

truncate 返回 NULL :如果失敗(或未實現),它將停止並出現錯誤。

isSeekable 返回一個邏輯值,連接是否支持 seek

警告

用於seek在 Windows 上不鼓勵這樣做。我們在 Windows 實現文件定位中發現了如此多的錯誤,建議用戶自行承擔風險,並要求用戶不要浪費時間R開發人員花時間處理有關 Windows 缺陷的錯誤報告。

也可以看看

connections

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Functions to Reposition Connections。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。