이 경우 선택적 매개 변수에 액세스하는 방법은 무엇입니까?
나는 파서가
import argparse
parser = argparse.ArgumentParser(prog='some_prog',formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument("tableName")
parser.add_argument("--duration",help = """It is an optional parameter.""")
parser.add_argument("columns",nargs=argparse.REMAINDER)
args = parser.parse_args()
print args.duration
명령 프롬프트를 사용하여 "python some_prog.py T1 --duration = 1278678-3275678678 column1 column2"를 실행할 때
args.duration이 None을 반환합니다.
"기간"에 어떻게 액세스 할 수 있습니까?
저에게 해결책을 제안하십시오 ...
nargs에 사용하는 방식이 잘못된 경우 알려주세요.
선택적 인수를 먼저 입력해야합니다.
python some_prog.py --duration=1278678-3275678678 T1 column1 column2
나를 위해 잘 작동합니다.
T1은에 할당 tableName
되고 "column1 column2"는 할당됩니다.columns
이것은 위치 인수를 얻은 후 tableName
나머지를의 일부로 취하기 때문입니다 argparse.REMAINDER
.
나는 이것을 다른 SO 질문에서 본 기억이 있지만 찾을 수 없었습니다.
이 가능하여 넣을 수 있도록 tableName
같은 첫 번째 인수를, 당신이 사용할 수있는 parse_known_args
대신 parse_args
과의 정의를 제거 column
:
import argparse
parser = argparse.ArgumentParser(prog='some_prog',formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument("tableName")
parser.add_argument("--duration",help = """It is an optional parameter.""")
(args, the_rest) = parser.parse_known_args()
print args.tableName
print args.duration
print the_rest
다음을 제공합니다.
T1 1234 [ 'column1', 'column2']
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다