I mistyped, 3.6.3 omits "1>", "log.txt" (not arguments.txt"), etc. My test was run in C:\tmp and used -e instead of -f and bin/R.exe instead of bin/x64/R.exe, using the following python script:
import subprocess cmd363 = " ".join(["C:/R/R-3.6.3/bin/R.exe", "--vanilla", "--quiet", # "-f", '"code.R"', "-e", '"commandArgs()"', "--args", '"' + 'arguments.txt"',"1>", '"' + 'log363.txt"', "2>&1"]) print(cmd363) status363 = subprocess.call(cmd363) cmd403 = " ".join(["C:/R/R-4.0.3/bin/R.exe", "--vanilla", "--quiet", # "-f", '"code.R"', "-e", '"commandArgs()"', "--args", '"' + 'arguments.txt"',"1>", '"' + 'log403.txt"', "2>&1"]) print(cmd403) status403 = subprocess.call(cmd403) This gave >>> import subprocess >>> >>> cmd363 = " ".join(["C:/R/R-3.6.3/bin/R.exe", "--vanilla", "--quiet", ... # "-f", '"code.R"', ... "-e", '"commandArgs()"', ... "--args", '"' + 'arguments.txt"',"1>", '"' + 'log363.txt"', "2>&1"]) >>> print(cmd363) C:/R/R-3.6.3/bin/R.exe --vanilla --quiet -e "commandArgs()" --args "arguments.txt" 1> "log363.txt" 2>&1 >>> status363 = subprocess.call(cmd363) >>> >>> cmd403 = " ".join(["C:/R/R-4.0.3/bin/R.exe", "--vanilla", "--quiet", ... # "-f", '"code.R"', ... "-e", '"commandArgs()"', ... "--args", '"' + 'arguments.txt"',"1>", '"' + 'log403.txt"', "2>&1"]) >>> print(cmd403) C:/R/R-4.0.3/bin/R.exe --vanilla --quiet -e "commandArgs()" --args "arguments.txt" 1> "log403.txt" 2>&1 >>> status403 = subprocess.call(cmd403) > commandArgs() [1] "C:\\R\\R-4.0.3/bin/x64/Rterm.exe" "--vanilla" [3] "--quiet" "-e" [5] "commandArgs()" "--args" [7] "arguments.txt" "1>" [9] "log403.txt" "2>&1" After exiting python I log403.txt does not exist and log363.txt shows the command arguments that R got: C:\R\R-3.6.3>cat log403.txt cat: log403.txt: No such file or directory C:\R\R-3.6.3>cat log363.txt > commandArgs() [1] "C:\\R\\R-3.6.3/bin/x64/Rterm.exe" "--vanilla" [3] "--quiet" "-e" [5] "commandArgs()" "--args" [7] "arguments.txt" On Wed, Jan 27, 2021 at 10:34 AM Bill Dunlap <williamwdun...@gmail.com> wrote: > > Note that in R-3.6.3 commandArgs() does not include the arguments > intended to be processed by the shell, "1>", "arguments.txt", etc., > but in R-4.0.3 it does include them. It is as though an R shell() > command was replaced by a system() command so cmd.exe didn't get a > chance to process the command line. > > -Bill > > On Wed, Jan 27, 2021 at 12:39 AM Martin Maechler > <maech...@stat.math.ethz.ch> 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() .. > > > > Martin > > > > ______________________________________________ > > 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. ______________________________________________ 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.