2017-05-11 1 views
1

argpsse를 사용하여 모든 인수를 구문 분석하는 파이썬 스크립트보다 크거나 같은 인수를 전달할 수 있는지 궁금합니다. 예를 들면 : 나는 항상 오류 메시지가 얻을 > 기호
python foo.py -a bob -d >= 12인수를 "> ="with argparse

는 : foo.py: error: argument -d/--min number : expected at least one argument

유효한 입력은 '=3 또는 >=3

감사
알렉시스

+1

그냥 따옴표로 묶을 수 없습니까? '-d "> = 12"' –

+0

이것은 꽤 엉망이 될 것입니다. 스크립트는 다른 앱에 의해 호출되고 꽤 많이 발생하여 그 앱이 인수 주위에 따옴표를 추가하는 것을 어렵게합니다. – alexis

답변

1

문제의 ISN 것 중 하나 argparse, 그것은 >이 명령 행에서 특별한 의미를 갖는다는 것입니다 (파일로의 출력 채널 지정).

python foo.py -a bob -d '>=' 12 

나 : 당신은 값이 쉘에 의해 일반 문자열로 처리되어 있는지 확인해야합니다 (. >=12 여부를 두 개의 인수 또는 1 있어야하는에 따라)

python foo.py -a bob -d '>= 12' 

+0

따옴표없이 스크립트를 실행하는 방법이 있습니까? 다른 앱에서 스크립트를 호출하는 중입니까? – alexis

+1

앱이 "stdout을 파일로 리다이렉트 (redirect stdout)"하고 싶지 않고 베어 커드 (bare)'>'를 포함하고있는 쉘 명령을 실행하고 있다면 잘못하고 있습니다. 일반 문자 ">"의 의미를 원하면 따옴표로 묶어야합니다. – deceze

+0

doh! 저것을위한 감사합니다, 당신의 절대적으로 정확한. 파이프를 완전히 잊었으므로 기본적으로 따옴표가 추가됩니다. – alexis

관련 문제