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