Рассмотрим следующий сценарий:Есть ли способ очистить python argparse?
import argparse
parser1 = argparse.ArgumentParser()
parser1.add_argument('-a')
args1 = parser1.parse_args()
parser2 = argparse.ArgumentParser()
parser2.add_argument('-b')
args2 = parser2.parse_args()
У меня есть несколько вопросов:
- Является parse_args метод единовременного или есть способ очистить аргументы, прежде чем добавлять новые? (например, что-то вроде
args1.clear()
илиparser1.clear()
) - Результат этого сценария неприменим. Хотя этот сценарий принимает аргумент
-a
, он не принимает никакого значения для 'a'. Также принимает любые аргументы-b
. Есть ли способ заставить любой из аргументов действительно работать? - Это мой реальный сценарий: у меня есть 2 скрипта. Оба импортируют тот же файл , который имеет код инициализации (загружает файлы конфигурации, создает регистраторы и т. Д.), Позволяет называть его init.py. Этот файл init.py также анализирует аргументы только потому, что ему требуется одно значение. Проблема заключается в том, что мне нужен один из скриптов для принятия других аргументов. Поскольку init.py что-то делает с одним аргументом, я не могу ждать с parse_args. Как я могу заставить его работать?
Edit:
Вот результат моего сценария:
[подсказка] # python2.7 myscript.py -a
использование: a.py [-h ] [-a А]
myscript.py: ошибка: аргумент -a: ожидается, один аргумент
[р rompt] # python2.7 myscript.py -a 1
пространство имен (а = '1')
использование: a.py [-h] [-b B]
myscript.py: ошибка: непризнанные аргументы: -a 1
это здорово! только то, что мне нужно. Благодаря! – Ofir