R: Reticulate - Как вызвать сценарий Python, который требует нескольких аргументов командной строки - PullRequest
0 голосов
/ 13 марта 2020

У меня есть скрипт с именем DataRetrieval.py. Этот сценарий подключается к внутренней базе данных, извлекает данные и записывает эти данные в файл Excel. Этот скрипт импортирует следующее:

a) вспомогательный модуль utils.py, который содержит несколько функций

b) файл конфигурации DataRetrieval.cfg (который содержит все данные для входа в систему и SQL запросы, необходимые для скрипта DataRetrieval.py)

Скрипт DataRetrieval.py принимает следующие 3 аргумента командной строки:

DataRetrieval.py   DataRetrieval.cfg   03/01/20

(сам скрипт, конфигурация файл и дата начала)

Я хотел бы использовать пакет Reticulate в R для:

  1. вызова каждого из этих 3 аргументов командной строки
  2. установить выходные данные скрипта (который является файлом Excel) для объекта (конечная цель - вызвать этот объект на блестящей панели инструментов)

Я думал об использовании функции 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 приведенных выше аргументов?

Спасибо!

1 Ответ

0 голосов
/ 16 марта 2020

РЕДАКТИРОВАТЬ: Я решил эту проблему, создав файл .py с именем retrieve.py и передав его в функцию source_python() Reticulate. Файл retrieve.py выглядит следующим образом:

import os

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