Извлечь аргументы из скрипта Python

Позвольте мне объяснить, что я имею в виду, чтобы дать вам некоторый контекст. У меня есть несколько сценариев Python (которые используют argpars или optpars), и их результаты обычно могут быть на консолях в формате JSON, обычного текста или CSV.

Я хотел бы создать веб-приложение (например, angular + node), которое автоматически генерирует веб-страницу для каждого моего скрипта, включая поле ввода для любого аргумента, необходимого скрипту python для запуска их из пользовательского интерфейса.

Я не хочу писать для каждого скрипта Python список и тип аргументов, которые они должны запускать, но я ищу автоматический способ извлечения такого списка из каждого скрипта Python.

Я могу попытаться проанализировать вывод -h для каждого скрипта или разобрать сам скрипт (add_option), но он может быть подвержен ошибкам.

Вам известны какие-либо инструменты / скрипты / модули, которые позволяют мне делать это автоматически?

Большое спасибо.

2 ответа

Решение

inspect Модуль поможет здесь:

>>> import inspect
>>> def example_function(a, b, c=1234):
        pass
>>> inspect.getargspec(example_function)
ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=(1234,))

Возможно, вам придется уточнить, какой у вас есть доступ к сценариям и их анализаторам. Это чёрные ящики, которые вы можете использовать только с -h и получить обратно справку или сообщение об использовании, или вы можете проверить parser?

Например, при использовании argparseВы делаете parser, назначьте ему некоторые атрибуты и создайте аргумент Actions, Эти объекты действий собраны в список, parser._actions,

смотреть на parser.format_help а также parser.format_usage методы, чтобы увидеть, какие значения передаются в средство форматирования справки для создания отображаемых строк.

Помимо изучения argparse.py файл, я бы предложил создать парсер в интерактивном сеансе, и изучить объекты, которые создаются.

Другие вопросы по тегам