我试图通过命令promt将R(在Windows x64 Rstudio上)的python命令传递给python脚本。如果我直接输入cdm,它会起作用,但如果我使用R函数system()
通过R输入则不行。格式是(这是我在windows cmd shell / promt中写的方式):
pyhton C:/some/path/script <C:/some/input.file> C:/some/output.file
这适用于cmd promt,并使用输入文件(在&lt;&gt;中)运行脚本并提供输出文件。我以为我在R里可以做到:
system('pyhton C:/some/path/script <C:/some/input.file> C:/some/output.file')
但是这给出了关于
的python错误error: unparsable arguments: ['<C:/some/input.file>', 'C:/some/output.file']
似乎R或windows解释的空格不同于我只是将行写入(或复制粘贴)到cmd promt。怎么做。
答案 0 :(得分:1)
来自?system
多年来,这个界面变得相当复杂:请参阅 system2用于更便携和灵活的界面 推荐用于新代码。
System2接受参数args
作为命令的参数。
所以你可以尝试:
system2('python', c('C:\\some\\path\\script', 'C:\\some\\input.file', 'C:\\some\\output.file'))
在Windows上:
R
文档在这一点上并不是很清楚(或者也许只是我),无论如何,似乎在Windows上建议的方法是使用shell()
,它比{{1}更少。 }和system
,加上redirection operators似乎效果更好(比如&lt;或&gt;)。
system2
这个命令的作用是:
shell ('python C:\\some\\path\\script < C:\\some\\input.file > C:\\some\\output.file')
。在这里,我们需要使用'\'来逃避'\'。