입력 파일 옵션과 출력 파일 옵션이 있다고 가정 해 봅니다. 어떻게 둘을 결합한 옵션을 만들 수 있습니까? 예를 들어 :다른 옵션 결합을위한 argparse 단축키 옵션
$ ./my_script.py --io input_output.txt
당신은 내가 두 옵션을 결합
-io
을 할 수 있다고 말할 수
하지만 -io filename
이 -i -o filename
하지 -i filename -o filename
에 대한 바로 가기입니다 :
$ ./my_script.py -i input.txt -o output.txt
은 다음과 같이 결합 될 수있다.
.add_argument()
호출에 dest=('input', 'output')
을 추가 할 수 있다고 생각했지만 dest
은 문자열이어야합니다.
--io
와 상호 배타적 인 그룹과
-i
다른 측면에
-o
의 그룹 만
-i
및
-o
에 대한 도움말 텍스트를 추가하는 시도
더 이상 프로그램이 --help
으로 실행할 때 :
usage: myscript.py [-h] [--io] [-i INPUT] [-o OUTPUT]
optional arguments:
-h, --help show this help message and exit
--io Use file as both input and output
또한 상호 배타적 인 부분은 작동하지 않는 것 같습니다. 나는 여전히 --io
과 개별 -i
과 -o
옵션을 사용하여 스크립트를 호출 할 수 있으며 오류는 발생하지 않습니다. 그룹과
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-i", "--input", help="Input file")
parser.add_argument("-o", "--output", help="Output file")
parser.parse_args()
코드 :
여기 내 골격 코드
import argparse
parser = argparse.ArgumentParser()
exclusive = parser.add_mutually_exclusive_group()
exclusive.add_argument("--io", help="Input and Output")
sub = exclusive.add_argument_group()
sub.add_argument("-i", "--input", help="Input file")
sub.add_argument("-o", "--output", help="Output file")
args = parser.parse_args()
if args.io:
in_file = out_file = args.io
else:
in_file = args.input
out_file = args.output
너무 쉽지 않습니다. 나는 AssertionError보다 좀 더 사용자 친화적 인 것을 사용한다는 점을 제외하고는 이것과 비슷한 것을 사용하기로 결정했다. – zondo