[R] readLines() and unz() and non-empty final line

Iris Simmons |kw@|mmo @end|ng |rom gm@||@com
Thu Oct 24 17:56:42 CEST 2024


Hi Mikko,


I tried running a few different things, and it seems as though
explicitly using `open()` and opening a blocking connection works.

```R
cat("hello", file = "hello.txt")
zip("hello.zip", "hello.txt")
local({
    conn <- unz("hello.zip", "hello.txt")
    on.exit(close(conn))
    ## you can use "r" instead of "rt"
    ##
    ## 'blocking = TRUE' is the default, so remove if desired
    open(conn, "rb", blocking = TRUE)
    readLines(conn)
})
```

A blocking connection might be undesirable for you, in which case
someone else might have a better solution.

On Thu, Oct 24, 2024 at 10:58 AM Marttila Mikko via R-help
<r-help using r-project.org> wrote:
>
> Dear list,
>
> I'm seeing a strange interaction with readLines() and unz() when reading
> a file without an empty final line. The final line gets dropped silently:
>
> > cat("hello", file = "hello.txt")
> > zip("hello.zip", "hello.txt")
>   adding: hello.txt (stored 0%)
> > readLines(unz("hello.zip", "hello.txt"))
> character(0)
>
> The documentation for readLines() says if the final line is incomplete for
> "non-blocking text-mode connections" the line is "pushed back, silently"
> but otherwise "accepted with a warning".
>
> My understanding is that the unz() here is blocking so the line should be
> accepted. Is that incorrect? If so, how would I go about reading such
> lines from a zip file?
>
> Best,
>
> Mikko
>
>
> This e-mail transmission may contain confidential or legally privileged information that is intended only for the individual or entity named in the e-mail address. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or reliance upon the contents of this e-mail is strictly prohibited. If you have received this e-mail transmission in error, please reply to the sender, so that they can arrange for proper delivery, and then please delete the message from your computer systems. Thank you.
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list