【问题标题】:R: Reticulate -- How to call a Python script that requires multiple command line argumentsR: Reticulate -- 如何调用需要多个命令行参数的 Python 脚本
【发布时间】:2020-03-13 20:43:55
【问题描述】:

我有一个名为DataRetrieval.py 的脚本。此脚本连接到内部数据库,检索数据并将该数据写入 Excel 文件。此脚本导入以下内容:

a) 一个包含多个函数的 utils.py 辅助模块

b) 一个DataRetrieval.cfg 配置文件(其中包含DataRetrieval.py 脚本所需的所有登录信息和SQL 查询)

DataRetrieval.py 脚本采用以下 3 个命令行参数:

DataRetrieval.py   DataRetrieval.cfg   03/01/20

(脚本本身、配置文件和开始日期)

我想在 R 中使用 Reticulate 包来:

  1. 调用这 3 个命令行参数中的每一个
  2. 将脚本的输出(即 Excel 文件)设置为对象(最终目标是在 Shiny 仪表板中调用此对象)

我正在考虑使用source_python() 函数,但我认为它不允许使用多个位置参数。错误信息返回:

> source_python("DataRetrieval.py")
Error in py_run_file_impl(file, local, convert) : SystemExit: 2
usage: python.exe [-h] [-e ENDDATE] config startDate
python.exe: error: the following arguments are required: config, startDate

使用Reticulate 包调用这3 个命令行参数的最佳方式是什么?也许一个单独的 .py 文件封装了上述 3 个参数中的每一个?

谢谢!

【问题讨论】:

  • 为什么要使用reticulate 而不是system() 的命令行调用,尤其是在R 环境中不需要任何Python 对象的情况下?
  • 最终目标是使用 Shiny。我们内部的 API 没有暴露给 R。因此,使用了 Reticulate。在该设置中如何使用 system()?

标签: r reticulate


【解决方案1】:

编辑:我通过创建一个名为retrieve.py 的.py 文件并将该文件传递给source_python() Reticulate 函数解决了这个问题。 retrieve.py文件内容如下:

import os

os.system('python DataRetrieval.py DataRetrieval.cfg 02/01/20')

【讨论】:

    猜你喜欢
    • 2021-06-14
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2016-01-18
    • 2018-10-24
    相关资源
    最近更新 更多