Я пытаюсь использовать обработчик аргументов, который я написал, используя argparse из другого скрипта python. Я хотел бы назвать это, передав ему список аргументов. Вот простой пример:python argparse - пропустить список для argparse без командной строки
def argHandler(argv):
import argparse
parser = argparse.ArgumentParser(description='Test argument parser')
parser.add_argument('foo', action='store',type=str)
parser.add_argument('bar', action='store',type=str)
parser.add_argument('-nee','--knightssaynee',action='store',type=str)
args = parser.parse_args()
return args.foo, args.bar, args.nee
if __name__=='__main__':
argList = ['arg1','arg2','-nee','arg3']
print argHandler(argList)
Это возвращает:
usage: scratch.py [-h] [-nee KNIGHTSSAYNEE] foo bar
scratch.py: error: too few arguments
Мне кажется, что функция, которую я определяю должен принимать список аргументов и флагов, и возвращает пространство имен. Я ошибаюсь?
Это сработало! Спасибо, мне просто нужно было изменить: 'args = parser.parse_args()' to 'args = parser.parse_args (argv)' в моем коде – YoungPadawan