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