微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用os.system或subprocess通过Python运行Rscript

我遇到了使用os.system()或subprocess()通过Python运行Rscript的问题。

使用os.system()通过python运行命令通常对我来说很好(例如使用gdalwarp.exe),而不是使用Rscript.exe。

我能看到的唯一区别是path中的空格。

避免path中的空间问题很容易通过将path放在引号中在CMD窗口中克服。 执行以下命令是成功的。

命令从Shell脚本工作,但不是从命令行?

在batch file中运行命令行

是否有可能连接两个以上的标准stream到Linuxterminal?

带有空格的Apache CLI选项值

如何压缩一个符号链接

"C:/Program Files/R/R-3.0.2/bin/Rscript.exe" "D:/.../otsu_Script.R"

但我坚持与Python。 我到目前为止用python试过的东西:

os.system("C:/Program Files/R/R-3.0.2/bin/Rscript.exe" "D:/.../otsu_Script.R") os.system(r"C:/Program Files/R/R-3.0.2/bin/Rscript.exe" "D:/.../otsu_Script.R") os.system(r'"C:/Program Files/R/R-3.0.2/bin/Rscript.exe" "D:/.../otsu_Script.R"') subprocess.call([r'C:/Program Files/R/R-3.0.2/bin/Rscript.exe',r'D:/.../otsu_Script.R'])

有人看到我做错了吗? 在此先感谢,艾克

使用man命令描述我的文件

LibreOffice 5命令行转换为PDF产生错误

如何在不列出文件的情况下获得Windows计算机文件计数?

Windows CMD控制台弄乱python脚本执行

如何在Windows上正确地转义shell参数?

在这一个简单的问题上得到精神后。 我决定重新安装RStatistics到一个没有空格或点的路径,如: C:/R/bin/Rscript.exe 。

现在subprocess.call(["C:/R/bin/Rscript.exe","D:/otsu_Script.R"] )或os.system("C:/R/bin/Rscript.exe D:/otsu_Script.R")工作得很好。 两天前应该尝试过…

…但是现在我是一只快乐的猴子:-)

现在可能已经太迟了,我已经看到你解决了这个问题,但是我遇到了一个类似的问题(尽管在Linux系统中),现在可能会帮助别人。 这个命令在python中调用时不起作用,尽管它直接在终端/命令行上工作。

os.system("R CMD BATCH ./read_lengths_batch.R")

我尝试了很多解决方案,包括subprocess和其他方面,但发现它比这更容易。 在我的情况下,我知道它可能在Windows中是不同的,我只需要在调用结束后添加一个& ,在后台运行。 不知何故,R似乎会关闭Python脚本,而不是做它的工作。

os.system("R CMD BATCH ./read_lengths_batch.R &")

奇怪的是,它也工作,如果在我的文件夹中,我将有一个.txt扩展名复制相同的文件: read_lengths_batch.R和read_lengths_batch.txt 。

希望它可以帮助别人!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐