繁体   English   中英

使用R通过命令行参数运行Python

[英]Using R to run Python with command line arguments

我正在尝试使用R运行Python脚本。 我正在创建一个调用我的Python脚本的R脚本。 我需要从命令提示符处执行此操作,并以整数形式传递3个参数(纬度,经度和年份)。 以下是我的R脚本:

args <- commandArgs(trailingOnly = TRUE)
lat_desired = args[1]
lon_desired = args[2]
year_desired = args[3]
system('/home/ "import sys; sys.stdout.write(file(\'python_file\', \'r\').read());"; python python_file lat_desired, lon_desired, year_desired')

我的python脚本读取lat_desired / lon_desired / year_desired参数并将其转换为整数(如下所示):

line4 > lat_desired = int(sys.argv[1])
line5 > lon_desired = int(sys.argv[2])
line6 > year_desired = int(sys.argv[3])

当我在命令提示符下运行所有​​这些命令时,我得到以下信息:错误:int()的基数为10的文本无效。关于如何将命令行参数从R脚本传递到Python脚本的任何想法?

system()您要传递字符串“ lat_desired”,“ lon_desired”和“ year_desired”。 在将所有这些传递到system()之前,您需要做一点文本处理。 您还可以使其更紧凑。

args <- commandArgs(trailingOnly = TRUE)
command <- sprintf(
    '/home/ "import sys; sys.stdout.write(file(\'python_file\', \'r\').read());"; python python_file %s, %s, %s',
    args[1], args[2], args[3])
system(command)

另外,如果您将继续在R中使用它们,则可以将它们转换为R中的整数。

args <- as.integer(commandArgs(trailingOnly = TRUE))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM