On 27/01/2021 3:17 p.m., Duncan Murdoch wrote:
On 27/01/2021 3:38 a.m., Martin Maechler wrote:
Martin Maechler
      on Tue, 26 Jan 2021 12:37:58 +0100 writes:

Marcel Baumgartner
      on Tue, 26 Jan 2021 08:55:48 +0100 writes:

      >> Dear all, my colleague posted our issue on stackoverflow:

      >> Calling R script from Python does not save log file in
      >> version 4 - Stack Overflow
      >> 
[https://stackoverflow.com/questions/65887485/calling-r-script-from-python-does-not-save-log-file-in-version-4]

      >> It is about this kind of call to R:

      >> R.exe -f code.R --args "~/file.txt" 1> "~/log.txt" 2>&1".

      >> The issue is that the log.txt file is not created when
      >> running R 4.x.x. The same code works perfectly fine with
      >> R 3.6.x.

      >> Any idea what's going wrong as of version 4? Regards
      >> Marcel

      > Dear Marcel, I think the solution is embarrassingly
      > simple:

      >> From the SO post, where she showed a bit more detail than you
      > show here, it's clear you have confused 'R.exe' and
      > 'Rscript.exe' and what you say above is not true:

      > 'R.exe' was used for R 3.6.0 but for R 4.0.3, you/she used
      > 'Rscript.exe' instead.


      > ... as you've noticed now, they do behave differently,
      > indeed!

Well, this was not the solution to their -- Windows-only -- problem.
The problem *is* indeed visible if they only use  R.exe  (also
for R 4.0.3).

I've commented more on the SO issue (see above),
notably asking for a *minimal* repr.ex. (reproducible example),
and one *not* using "<YOUR PATH>" and setwd() ..


Isn't this purely a Python or user problem?  R shouldn't process
redirection directives like

    1> "~/log.txt" 2>&1

because it's the shell's job to process those. If Python is acting as
the shell, it needs to handle those things.  If R was handling the
command via

Oops, sent before finishing:

If R was handling the command via system() or system2(), it would handle redirection itself. If it was using the Windows-only shell(), it would call cmd.exe (by default) to handle redirection. (This is a difference between R on Windows and R in Unix: in Unix a shell is always used.)

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to