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


R readLines 從連接讀取文本行


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

說明

從連接讀取部分或全部文本行。

用法

readLines(con = stdin(), n = -1L, ok = TRUE, warn = TRUE,
          encoding = "unknown", skipNul = FALSE)

參數

con

connection 對象或字符串。

n

整數。要讀取的(最大)行數。負值表示應該讀取到連接上輸入的末尾。

ok

合乎邏輯的。在讀取 n > 0 行之前到達連接末尾是否可以?如果不是,將會產生錯誤。

warn

合乎邏輯的。如果文本文件缺少最終 EOL 或者文件中嵌入了 null,則發出警告。

encoding

輸入字符串采用的編碼。它用於將字符串標記為已知的 Latin-1、UTF-8 或字節:它不用於重新編碼輸入。要執行後者,請將編碼指定為連接 con 的一部分或通過 options(encoding=) :請參閱示例和“詳細信息”。

skipNul

邏輯:應該跳過 nul 嗎?

細節

如果con是字符串,則函數調用file來獲取在函數調用期間打開的文件連接。這可以是壓縮文件。 (文件路徑的tilde expansionfile完成。)

如果連接打開,則從當前位置讀取。如果未打開,則在調用期間以 "rt" 模式打開,然後關閉(但不會銷毀;必須調用 close 才能執行此操作)。

如果最後一行不完整(沒有最終 EOL 標記),則行為取決於連接是否阻塞。對於非阻塞文本模式連接,不完整的行將被靜默地推回。對於所有其他連接,該線路將被接受,但會出現警告。

無論連接以何種模式打開,LF、CRLF 或 CR 中的任何一個都將被接受作為線路的 EOL 標記。

輸入流中嵌入的 null 將終止當前正在讀取的行,並發出警告(除非 skipNul = TRUEwarn = FALSE )。

如果 con 是帶有非默認 encoding 參數的 not-already-open connection,則文本將轉換為 UTF-8 並按此聲明(並且忽略 readLinesencoding 參數)。請參閱示例。

長度為讀取的行數的字符向量。

如果 encoding"latin1""UTF-8" ,結果的元素具有聲明的編碼,

注意

默認連接 stdin 可能與 con = "stdin" 不同:請參閱 file

例子

fil <- tempfile(fileext = ".data")
cat("TITLE extra line", "2 3 5 7", "", "11 13 17", file = fil,
    sep = "\n")
readLines(fil, n = -1)
unlink(fil) # tidy up

## difference in blocking
fil <- tempfile("test")
cat("123\nabc", file = fil)
readLines(fil) # line with a warning

con <- file(fil, "r", blocking = FALSE)
readLines(con) # "123"
cat(" def\n", file = fil, append = TRUE)
readLines(con) # gets both
close(con)

unlink(fil) # tidy up

## Not run: 
# read a 'Windows Unicode' file
A <- readLines(con <- file("Unicode.txt", encoding = "UCS-2LE"))
close(con)
unique(Encoding(A)) # will most likely be UTF-8

## End(Not run)

也可以看看

connections , writeLines , readBin , scan

相關用法


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