파이썬에서 argparse
모듈을 사용하여 명령 행 인터페이스를 작성하려하지만 내 인수 중 하나에 대한 도움말 메시지에 문제가 있습니다. 인수는 1 개 인수 (파일 이름) 또는 3 개 인자 (파일 이름, 열, 열) 중 하나를 취해야한다, 그래서 그것을 접근하는 방법이 있습니다 : 다음nargs = '+'일 때 어떻게 괄호로 묶인 [...] 도움말 메시지가 표시되지 않습니까?
parser = argparse.ArgumentParser()
parser.add_argument('--score', nargs ='+', help='score file, default X Y = 2 4',
metavar='FILENAME X Y')
args = parser.parse_args()
과 IF-다른 :
if len(args.score) == 1:
data = open(args.score[0])
S1 = 1
S2 = 3
elif len(args.score) == 3:
data = open(args.score[0])
S1 = int(args.score[1]) - 1
S2 = int(args.score[2]) - 1
else:
print('Error: --score incorrect number of arguments called')
을
-h, --help show this help message and exit
--score FILENAME X Y [FILENAME X Y ...]
score file, default X Y = 2 4
내가 괄호 부분은 멀리 가고 싶어 :하지만 내 도움말 메시지는 다음과 같습니다
-h, --help show this help message and exit
--score FILENAME X Y score file, default X Y = 2 4
편집
여기 내가 ANSI 이스케이프 코드 사용이기는하지만 해키 해결 방법으로 수정 프로그램을 구현하기 위해 선택하는 방법은 다음과 같습니다
parser.add_argument('--score', nargs ='+', help='\x1b[A\b\b\b\b\b\b X Y \x1b[1C\b score file, default X Y = 2 4',
metavar=('FILENAME', ''))
출력을
usage: test.py [-h] [--score FILENAME [...]]
optional arguments:
-h, --help show this help message and exit
--score FILENAME X Y score file, default X Y = 2 4
감사를 제공을 메타 바 튜플 아이디어에 대한 @hpaulj.