Как передать строку в аргументы функции в python3 - PullRequest
0 голосов
/ 26 февраля 2019

Я строю интерфейс командной строки, используя библиотеку argparse для анализа ввода пользователя.На одном этапе я хотел бы взять пользовательский ввод, такой как "'test', x=False", и использовать его в такой функции, как func('test', x=False).

Я пытался использовать ast.literal_eval для этого, но он сталкивается ссинтаксическая ошибка в знаке равенства.(Я сделал ast.literal_eval("("+args+")"), где args был приведенный выше пример)

Кто-нибудь знает о безопасном способе парсинга ввода пользователя таким образом?Желательно без eval, хотя в худшем случае я мог бы использовать eval, так как это инструмент CLI.

Редактировать (для людей, которые сказали, что используют ввод вручную (): мне нужен инструмент для анализа ввода, когдакоманда запускается (это модуль python, который я хочу, чтобы его можно было вызывать, например python3 -m hmcli.raw --args "'test', x=False", где args может быть гибким, поскольку используемая функция может отличаться.

...