R: Read/write lines to/from a file

read_lines {readr} | R Documentation

## Read/write lines to/from a file

### Description

`read_lines()` reads up to `n_max` lines from a file. New lines are not included in the output. `read_lines_raw()` produces a list of raw vectors, and is useful for handling data with unknown encoding. `write_lines()` takes a character vector or list of raw vectors, appending a new line after each entry.

### Usage

    read_lines(
      file,
      skip = 0,
      skip_empty_rows = FALSE,
      n_max = Inf,
      locale = default_locale(),
      na = character(),
      lazy = TRUE,
      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()
    )

### Arguments

`file` | Either a path to a file, a connection, or literal data (either a single string or a raw vector). Files ending in `.gz`, `.bz2`, `.xz`, or `.zip` will be automatically uncompressed. Files starting with `http://`, `https://`, `ftp://`, or `ftps://` will be automatically downloaded. Remote gz files can also be automatically downloaded and decompressed. Literal data is most useful for examples and tests. To be recognised as a path, it must be wrapped with `I()`, be a string containing at least one new line, or be a vector containing at least one string with a new line. Using a value of `clipboard()` will read from the system clipboard.
`skip` | Number of lines to skip before reading data.
`skip_empty_rows` | Should blank rows be ignored altogether? i.e. If this option is `TRUE` then blank rows will not be represented at all. If it is `FALSE` then they will be represented by `NA` values in all the columns.
`n_max` | Number of lines to read. If `n_max` is -1, all lines in file will be read.
`locale` | The locale controls defaults that vary from place to place. The default locale is US-centric (like R), but you can use `locale()` to create your own locale that controls things like the default time zone, encoding, decimal mark, big mark, and day/month names.
`na` | Character vector of strings to interpret as missing values. Set this option to `character()` to indicate no missing values.
`lazy` | Read values lazily? By default the file is initially only indexed and the values are read lazily when accessed. Lazy reading is useful interactively, particularly if you are only interested in a subset of the full dataset. Note, if you later write to the same file you read from you need to set `lazy = FALSE`. On Windows the file will be locked and on other systems the memory map will become invalid.
`num_threads` | The number of processing threads to use for initial parsing and lazy reading of data. If your data contains newlines within fields the parser should automatically detect this and fall back to using one thread only. However if you know your file has newlines within quoted fields it is safest to set `num_threads = 1` explicitly.
`progress` | Display a progress bar? By default it will only display in an interactive session and not while knitting a document. The automatic progress bar can be disabled by setting option `readr.show_progress` to `FALSE`.
`x` | A character vector or list of raw vectors to write to disk.
`sep` | The line separator. Defaults to `\\n`, commonly used on POSIX systems like macOS and linux. For native windows (CRLF) separators use `\\r\\n`.
`append` | If `FALSE`, will overwrite existing file. If `TRUE`, will append to existing file. In both cases, if the file does not exist a new file is created.
`path` | , use the `file` argument instead.

### Value

`read_lines()`: A character vector with one element for each line. `read_lines_raw()`: A list containing a raw vector for each line.

`write_lines()` returns `x`, invisibly.

### Examples

    read_lines(file.path(R.home("doc"), "AUTHORS"), n_max = 10)
    read_lines_raw(file.path(R.home("doc"), "AUTHORS"), n_max = 10)

    tmp <- tempfile()

    write_lines(rownames(mtcars), tmp)
    read_lines(tmp, lazy = FALSE)
    read_file(tmp) # note trailing \n

    write_lines(airquality$Ozone, tmp, na = "-1")
    read_lines(tmp)

[Package readr version 2.0.2 Index]