현재 argparse를 사용하여 인수를 구문 분석하고 플래그를 부울 옵션으로 저장하고 있습니다. 그런 다음 어느 플래그가 true로 설정되어 있는지 확인하고 해당 기능을 실행합니다. Argparse는 열리고 인수로 호출 된 함수에 전달 된 입력 파일을 구문 분석합니다.argparse 다른 옵션을 구문 분석 한 후 함수를 호출하십시오.
그래서 :
parser.add_argument('input_data', action='store', help='some help')
parser.add_argument('outputname', action='store',default=None, help='some help')
parser.add_argument('--flag','-f', action='store_true', dest='flag', default=False, help='help!')
나는 플래그 함수가 호출되기 전에 일부 정보를 읽을 수있는 input_data를 열 수 있습니다.
if args.flag == True:
array_out = flag(array_read_from_input)
if args.outputname == None:
name = 'Flag.tif'
작업의 키워드는 함수를 호출하도록 subclass argparse 수 있습니다 :이 기능은 현재로 구현됩니다.
input_data 옵션을 구문 분석하고 일부 처리를 수행 한 다음 argpse의 작업 매개 변수를 하위 클래스 화하여 각 인수에 대해 중첩 된 if 루프를 사용하지 않고 플래그 함수를 호출 할 수 있습니까?
개체를 'True'또는 'None'으로 비교하지 마십시오. 'is'를 사용하거나 객체의 진리 값을 사용하십시오 (따라서'args.flag : ... '및'args.outputname이 None' 인 경우). 또한 사용자 지정 작업을 올바르게 만들 수 있다는 것을 알고 있습니까? argparse 문서를 읽으십시오. – Bakuriu
@Bakuriu "argparse를 서브 클래스 화하여 action 키워드가 함수를 호출하도록 할 수 있습니다." 문제는 사용자 지정 작업을 만들 수 있는지 여부가 아니라 다른 args를 구문 분석하고 조작 한 후에 해당 작업을 호출 할 수 있는지 여부입니다. – Jzl5325
당신이 * after * 파싱이라고 부르고 싶다면, 질문에'argparse'의 관계가 무엇인지 이해하지 못합니다. 이 모듈은 명령 행을 구문 분석하고 결과적으로 파싱하는 동안 액션을 실행합니다. 또한, 나는 이중 'if'가 무엇이 잘못된지 이해하지 못한다. 참고 사항 : [parser] (http://docs.python.org/dev/library/argparse.html#argumentparser-objects)의 하위 클래스를 사용하고'parse_args '함수를 다시 구현하면 함수가 거기에 호출되지만 여전히 두 개의'if '를 넣어야합니다. – Bakuriu