read_lines()
从文件中读取最多 n_max
行。新行不包含在输出中。 read_lines_raw()
生成原始向量列表,对于处理未知编码的数据很有用。 write_lines()
采用字符向量或原始向量列表,在每个条目后附加一个新行。
用法
read_lines(
file,
skip = 0,
skip_empty_rows = FALSE,
n_max = Inf,
locale = default_locale(),
na = character(),
lazy = should_read_lazy(),
num_threads = readr_threads(),
progress = show_progress()
)
read_lines_raw(
file,
skip = 0,
n_max = -1L,
num_threads = readr_threads(),
progress = show_progress()
)
write_lines(
x,
file,
sep = "\n",
na = "NA",
append = FALSE,
num_threads = readr_threads(),
path = deprecated()
)
参数
- file
-
文件路径、连接或文字数据(单个字符串或原始向量)。
以
.gz
、.bz2
、.xz
或.zip
结尾的文件将自动解压缩。将自动下载以http://
、https://
、ftp://
或ftps://
开头的文件。远程gz文件也可以自动下载并解压。文字数据对于示例和测试最有用。要被识别为文字数据,输入必须用
I()
包装,是包含至少一个换行符的字符串,或者是至少包含一个带有换行符的字符串的向量。使用值
clipboard()
将从系统剪贴板读取。 - skip
-
读取数据之前要跳过的行数。
- skip_empty_rows
-
空白行应该被完全忽略吗?即,如果此选项是
TRUE
,则根本不会表示空白行。如果是FALSE
,则它们将由所有列中的NA
值表示。 - n_max
-
要读取的行数。如果
n_max
为-1,则将读取文件中的所有行。 - locale
-
区域设置控制默认值因地而异。默认区域设置为 US-centric(如 R),但您可以使用
locale()
创建自己的区域设置来控制默认时区、编码、小数标记、大标记和日/月名称等内容。 - na
-
要解释为缺失值的字符串的字符向量。将此选项设置为
character()
以指示没有缺失值。 - lazy
-
懒惰地读取值?默认情况下,这是
FALSE
,因为延迟读取文件时有一些特殊的考虑因子,这导致了一些用户的错误。具体来说,读取然后写回同一个文件时,事情会变得很棘手。但是,一般来说,惰性读取 (lazy = TRUE
) 有很多好处,特别是对于交互式使用以及当您的下游工作仅涉及行或列的子集时。在
should_read_lazy()
和vroom::vroom()
的altrep
参数的文档中了解更多信息。 - num_threads
-
用于初始解析和延迟读取数据的处理线程数。如果您的数据在字段中包含换行符,解析器应自动检测到这一点并回退到仅使用一个线程。但是,如果您知道文件在带引号的字段中包含换行符,那么显式设置
num_threads = 1
是最安全的。 - progress
-
显示进度条?默认情况下,它只会在交互式会话中显示,而不会在编织文档时显示。可以通过将选项
readr.show_progress
设置为FALSE
来禁用自动进度条。 - x
-
要写入磁盘的字符向量或原始向量列表。
- sep
-
行分隔符。默认为
\\n
,常用于 macOS 和 Linux 等 POSIX 系统。对于本机窗口 (CRLF) 分隔符使用\\r\\n
。 - append
-
如果
FALSE
,将覆盖现有文件。如果TRUE
,将追加到现有文件。在这两种情况下,如果文件不存在,则会创建新文件。 - path
例子
read_lines(file.path(R.home("doc"), "AUTHORS"), n_max = 10)
#> [1] "Authors of R."
#> [2] ""
#> [3] "R was initially written by Robert Gentleman and Ross Ihaka—also known as \"R & R\""
#> [4] "of the Statistics Department of the University of Auckland."
#> [5] ""
#> [6] "Since mid-1997 there has been a core group with write access to the R"
#> [7] "source, currently consisting of"
#> [8] ""
#> [9] "Douglas Bates"
#> [10] "John Chambers"
read_lines_raw(file.path(R.home("doc"), "AUTHORS"), n_max = 10)
#> [[1]]
#> [1] 41 75 74 68 6f 72 73 20 6f 66 20 52 2e
#>
#> [[2]]
#> raw(0)
#>
#> [[3]]
#> [1] 52 20 77 61 73 20 69 6e 69 74 69 61 6c 6c 79 20 77 72 69 74 74 65 6e
#> [24] 20 62 79 20 52 6f 62 65 72 74 20 47 65 6e 74 6c 65 6d 61 6e 20 61 6e
#> [47] 64 20 52 6f 73 73 20 49 68 61 6b 61 e2 80 94 61 6c 73 6f 20 6b 6e 6f
#> [70] 77 6e 20 61 73 20 22 52 20 26 20 52 22
#>
#> [[4]]
#> [1] 6f 66 20 74 68 65 20 53 74 61 74 69 73 74 69 63 73 20 44 65 70 61 72
#> [24] 74 6d 65 6e 74 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79
#> [47] 20 6f 66 20 41 75 63 6b 6c 61 6e 64 2e
#>
#> [[5]]
#> raw(0)
#>
#> [[6]]
#> [1] 53 69 6e 63 65 20 6d 69 64 2d 31 39 39 37 20 74 68 65 72 65 20 68 61
#> [24] 73 20 62 65 65 6e 20 61 20 63 6f 72 65 20 67 72 6f 75 70 20 77 69 74
#> [47] 68 20 77 72 69 74 65 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 52
#>
#> [[7]]
#> [1] 73 6f 75 72 63 65 2c 20 63 75 72 72 65 6e 74 6c 79 20 63 6f 6e 73 69
#> [24] 73 74 69 6e 67 20 6f 66
#>
#> [[8]]
#> raw(0)
#>
#> [[9]]
#> [1] 44 6f 75 67 6c 61 73 20 42 61 74 65 73
#>
#> [[10]]
#> [1] 4a 6f 68 6e 20 43 68 61 6d 62 65 72 73
#>
tmp <- tempfile()
write_lines(rownames(mtcars), tmp)
read_lines(tmp, lazy = FALSE)
#> [1] "Mazda RX4" "Mazda RX4 Wag" "Datsun 710"
#> [4] "Hornet 4 Drive" "Hornet Sportabout" "Valiant"
#> [7] "Duster 360" "Merc 240D" "Merc 230"
#> [10] "Merc 280" "Merc 280C" "Merc 450SE"
#> [13] "Merc 450SL" "Merc 450SLC" "Cadillac Fleetwood"
#> [16] "Lincoln Continental" "Chrysler Imperial" "Fiat 128"
#> [19] "Honda Civic" "Toyota Corolla" "Toyota Corona"
#> [22] "Dodge Challenger" "AMC Javelin" "Camaro Z28"
#> [25] "Pontiac Firebird" "Fiat X1-9" "Porsche 914-2"
#> [28] "Lotus Europa" "Ford Pantera L" "Ferrari Dino"
#> [31] "Maserati Bora" "Volvo 142E"
read_file(tmp) # note trailing \n
#> [1] "Mazda RX4\nMazda RX4 Wag\nDatsun 710\nHornet 4 Drive\nHornet Sportabout\nValiant\nDuster 360\nMerc 240D\nMerc 230\nMerc 280\nMerc 280C\nMerc 450SE\nMerc 450SL\nMerc 450SLC\nCadillac Fleetwood\nLincoln Continental\nChrysler Imperial\nFiat 128\nHonda Civic\nToyota Corolla\nToyota Corona\nDodge Challenger\nAMC Javelin\nCamaro Z28\nPontiac Firebird\nFiat X1-9\nPorsche 914-2\nLotus Europa\nFord Pantera L\nFerrari Dino\nMaserati Bora\nVolvo 142E\n"
write_lines(airquality$Ozone, tmp, na = "-1")
read_lines(tmp)
#> [1] "41" "36" "12" "18" "-1" "28" "23" "19" "8" "-1" "7"
#> [12] "16" "11" "14" "18" "14" "34" "6" "30" "11" "1" "11"
#> [23] "4" "32" "-1" "-1" "-1" "23" "45" "115" "37" "-1" "-1"
#> [34] "-1" "-1" "-1" "-1" "29" "-1" "71" "39" "-1" "-1" "23"
#> [45] "-1" "-1" "21" "37" "20" "12" "13" "-1" "-1" "-1" "-1"
#> [56] "-1" "-1" "-1" "-1" "-1" "-1" "135" "49" "32" "-1" "64"
#> [67] "40" "77" "97" "97" "85" "-1" "10" "27" "-1" "7" "48"
#> [78] "35" "61" "79" "63" "16" "-1" "-1" "80" "108" "20" "52"
#> [89] "82" "50" "64" "59" "39" "9" "16" "78" "35" "66" "122"
#> [100] "89" "110" "-1" "-1" "44" "28" "65" "-1" "22" "59" "23"
#> [111] "31" "44" "21" "9" "-1" "45" "168" "73" "-1" "76" "118"
#> [122] "84" "85" "96" "78" "73" "91" "47" "32" "20" "23" "21"
#> [133] "24" "44" "21" "28" "9" "13" "46" "18" "13" "24" "16"
#> [144] "13" "23" "36" "7" "14" "30" "-1" "14" "18" "20"
相关用法
- R readr read_log 将通用/组合日志文件读入 tibble
- R readr read_rds 读/写 RDS 文件。
- R readr read_fwf 将固定宽度文件读入 tibble
- R readr read_builtin 从包中读取内置对象
- R readr read_delim 将分隔文件(包括 CSV 和 TSV)读入 tibble
- R readr read_table 将空格分隔的列读入 tibble
- R readr read_file 读/写完整文件
- R readr readr_example 获取 readr 示例的路径
- R readr datasource 创建源对象。
- R readr melt_delim 返回分隔文件中每个标记的熔化数据(包括 csv 和 tsv)
- R readr parse_number 灵活地解析数字
- R readr Tokenizers 分词器。
- R readr melt_table 返回空格分隔文件中每个标记的熔化数据
- R readr date_names 创建或检索日期名称
- R readr type_convert 重新转换现有 DataFrame 中的字符列
- R readr locale 创建语言环境
- R readr write_delim 将数据帧写入分隔文件
- R readr parse_vector 解析字符向量。
- R readr with_edition 暂时更改活动阅读器版本
- R readr format_delim 将 DataFrame 转换为分隔字符串
- R readr edition_get 检索当前活动版本
- R readr melt_fwf 返回固定宽度文件中每个标记的熔化数据
- R readr count_fields 计算文件每一行中的字段数
- R readr problems 检索解析问题
- R readr parse_guess 使用“最佳”类型进行解析
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Read/write lines to/from a file。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。