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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。