나는 약간의 문제가 무엇인지 혼란스러워 ... 여기에 내가 함께 모아 놓은 코드가있다.
>>> import optparse
>>> import shlex
>>> parser = optparse.OptionParser()
>>> parser.add_option('--build',type=str,default=None)
<Option at 0x...: --build>
"명령 줄"에 --build
옵션을 제공하십시오. "명령 줄"
>>> print options
{'build': None}
>>> options.build is None
True
에 주어진
>>> options, args = parser.parse_args(shlex.split("--build=None"))
>>> print options
{'build': 'None'}
>>> options.build is None
False
>>> options, args = parser.parse_args(shlex.split(""))
없음 --build
옵션 당신이 볼 수 있듯이, --build
는 명령 줄에 제공되지 않은 경우 (유형 NoneType
와 즉, 객체) None
기본값. build가 제공되고 문자열 == "None"이면 문자열 "None"을 반환합니다.
--build=None
을 명령 줄에 전달해야한다면 optparse가 해당 플래그로 수행하기를 원하는 것이 조금 모호합니다. 예를 들어 경로 인 경우 없음 경로가 존재하는지 확인하는 함수를 작성할 수 있습니다.
import os.path
def path_exists(p):
if(os.path.exists(p)): return p
else: return None
...
parser.add_option('--build',type=path_exists,default=None)
물론 path_exists는 응용 프로그램에 대해 원하는만큼 복잡 할 수 있습니다.
가 나는'NONE', 당신은 무엇을'function'에 확인하기 위해'dictionary'에서 조회 할 수없는 당신이 그렇게 빨리하는'dictionary'를 사용하여 작동하려면'string' 입력을 매핑 할 수 있습니다 생각 요구. 그러나 커맨드 라인 인수에서 왔기 때문에'optparse' 또는'argparse'를 고집하는 것이 가장 좋습니다 : http://docs.python.org/library/argparse.html#module-argparse – George
코드를 볼 수 있습니까? ? –