在 R 中:使用 system() 传递带空格的 python 命令
In R: use system() to pass python command with white spaces
我正在尝试通过命令提示符将 python 命令从 R(在 Windows x64 Rstudio 上)传递到 python 脚本。如果我直接在 cdm 中输入它会工作,但如果我使用 R 函数 system()
通过 R 进行输入则不会。格式是(这就是我在 windows cmd shell/promt 中的确切写法):
pyhton C:/some/path/script <C:/some/input.file> C:/some/output.file
这在 cmd promt 中工作,并使用输入文件(在 <> 中)运行脚本并给出输出文件。我以为我在 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 时不同。怎么做。
来自?system
This interface has become rather complicated over the years: see
system2 for a more portable and flexible interface which is
recommended for new code.
System2 接受参数 args
作为您命令的参数。
所以你可以试试:
system2('python', c('C:\some\path\script', 'C:\some\input.file', 'C:\some\output.file'))
上 Windows:
R
文档在这一点上不是很清楚(或者可能只有我一个人),无论如何似乎在 Windows 上建议的方法是使用 shell()
这是不如 system
和 system2
原始,而且它似乎与 redirection operators(如 < 或 >)一起使用效果更好。
shell ('python C:\some\path\script < C:\some\input.file > C:\some\output.file')
所以这个命令是做什么的:
- 致电python
- 告诉python执行脚本
C:\some\path\script
。这里我们需要使用'\'转义'\'。
- 然后我们使用“<”运算符和 input.file
将一些输入传递给脚本
- 我们将输出重定向(使用“>”)到输出文件。
我正在尝试通过命令提示符将 python 命令从 R(在 Windows x64 Rstudio 上)传递到 python 脚本。如果我直接在 cdm 中输入它会工作,但如果我使用 R 函数 system()
通过 R 进行输入则不会。格式是(这就是我在 windows cmd shell/promt 中的确切写法):
pyhton C:/some/path/script <C:/some/input.file> C:/some/output.file
这在 cmd promt 中工作,并使用输入文件(在 <> 中)运行脚本并给出输出文件。我以为我在 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 时不同。怎么做。
来自?system
This interface has become rather complicated over the years: see system2 for a more portable and flexible interface which is recommended for new code.
System2 接受参数 args
作为您命令的参数。
所以你可以试试:
system2('python', c('C:\some\path\script', 'C:\some\input.file', 'C:\some\output.file'))
上 Windows:
R
文档在这一点上不是很清楚(或者可能只有我一个人),无论如何似乎在 Windows 上建议的方法是使用 shell()
这是不如 system
和 system2
原始,而且它似乎与 redirection operators(如 < 或 >)一起使用效果更好。
shell ('python C:\some\path\script < C:\some\input.file > C:\some\output.file')
所以这个命令是做什么的:
- 致电python
- 告诉python执行脚本
C:\some\path\script
。这里我们需要使用'\'转义'\'。 - 然后我们使用“<”运算符和 input.file 将一些输入传递给脚本
- 我们将输出重定向(使用“>”)到输出文件。