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

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Thu Oct 24 19:12:58 CEST 2024


But note:

> zip("hello.zip", "hello.txt")
updating: hello.txt (stored 0%)
> readChar(unz("hello.zip","hello.txt"),100)
[1] "hello"

I leave it to you and other wiser heads to figure out.

Cheers,
Bert

On Thu, Oct 24, 2024 at 8:57 AM Iris Simmons <ikwsimmo using gmail.com> wrote:

> 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.
>
> ______________________________________________
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list