2013-11-23 3 views
0

저는 파이썬 초보자입니다. 명령 줄 인수를 구문 분석하려면 내 프로그램 중 하나를 argparse 사용하려고합니다. (: 쓰기/명령), 나는 그것을 구문 분석 argparse 사용 여기 포기하고 명령 행 인수에 대해 지금
prog.py /command:writeargparse add_argument()를 사용하여 위치 인수 문자열의 특정 문자를 확인하십시오.

: 나는이 프로그램을 실행할 때 나는 그것을 실행하려면. 제약 조건은 명령 줄 인수에 문자, 숫자, /, :, -,., \, _ 만 포함하면됩니다.
add_argument() 함수에서이 제약 조건을 어떻게 지정합니까?

+2

당신이 더 많은 표준'--command = write'에 갈 수없는 이유를 원하는입니까? – roippi

+0

예. 이 기능은 배치 스크립트에서 이미 구현 되었기 때문에 사용되지는 않지만 쓸모가 없으므로 파이썬 스크립트에서도 동일한 기능을 구현하려고합니다. 사람들은 이미이 형식을 사용하고 있기 때문에 지금은 변경할 수 없습니다. – tejas

+0

그것은 argparse에 대한 매우 이상한 제약 사항입니다. 나는 그것을 처리 할 수 ​​있다고 생각하지 않습니다. 표준 형식의 좋은 옵션으로 프로그램을 작성하고 표준 형식으로 사용해야하는 이상한 형식의 맵핑을 위해 sed에 도우미 스크립트를 작성합니다. –

답변

0

parse_args으로 필터링하기 전에 sys.argv을 필터링 할 수 있습니다.

import sys 
... 
def foo(a): 
    return a.replace('/','--').replace(':','=') 

# '/command:write' => '--command=write' 

argv = [foo(a) for a in sys.argv] 
parse.parse_args(argv) 

사용 re.sub는 더 복잡한 교체

관련 문제