나는 현재 확장하고있는 간단한 python 명령 줄 응용 프로그램을 가지고 있습니다. 현재 몇 가지 명령 줄 인수를 지원합니다.파이썬에서 getopt 플래그를 단락/단락
try:
opts, args = getopt.getopt(sys.argv[1:], 'b:h',
['battle=', 'help'])
except getopt.GetoptError:
usage()
raise
# Parse opts/args.
for opt, arg in opts:
if opt in ('-h', '--help'):
usage()
elif opt in ('-b', '--battle'):
battle = True
많은 추가 명령 줄 인수를 추가해야합니다. 구현 방법은 사용자가 설정할 수있는 모든 플래그에 대해 "설정"플래그를 추적해야합니다.
같은 사용자가 모두 -x
, -y
및 -z
플래그를 실행 한 경우, 남아있는 모든 구문 분석 작업을 건너 파서에게, 같은 난에 "단락"내 파서를 원하는 경우가있다, 특정 기능을 실행하십시오. 그러나 이는 각 옵션에 대해 is x,y,z set
을 점검합니다.
- 특정 구문 분석 작업을 "단락"시키도록 구문 분석을 단순화하는 "파이썬 (pythonic)"방법이 있습니까?
- opt와 arg를 정렬하여 특정 순서로 플래그/opts를 구문 분석 할 수 있습니까?
예, 'getopt'는 현재로서는 어려운 요구 사항입니다. – DevNull
좋은 답변입니다. 내 솔루션의 경우 지저분한 검사. 다음 프로젝트에서는 argparse를 사용할 것이다. 감사. – DevNull
네,'getopt' 만 사용 가능하기 때문에'argparse'만큼 깨끗하지는 않습니다. 보이는 각 플래그를 사전에 저장하고 루프의 끝에서 검사를 할 수 있습니다 : if all ([arg '['x ','y ','z ']의 arg에 대해 seen_args에있는 arg) : short_circuit() ' – thaavik