Как использовать argparse для получения ввода с аргументом flag в качестве строки - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь реализовать команду UNIX find со следующими аргументами, используя модуль argparse:

python3 find.py . -name new -type d -exec rm -rf {} \;

У меня есть специфическая проблема с флагом -exec.Здесь я должен принять все аргументы, пока не наберу точку с запятой.То, что я сейчас делаю, выглядит следующим образом:

parser.add_argument('-exec', nargs='*', help='specify the command to execute')

, где я получаю все аргументы в форме списка, а затем выполняю операцию join, чтобы объединить их все вместе.

Ноздесь argparse вызывает исключение Unrecognized Arguments каждый раз, когда я пытаюсь проанализировать строку, содержащую флаг, например, rm -rf.Конечно, я мог бы решить эту проблему, используя "", но я бы хотел, чтобы это было как можно ближе к команде UNIX.Есть ли способ сделать это в argparse?

...