2010-12-21 3 views
2

일반적으로 optparse의 메서드 parse_args을 아무런 인수없이 호출 할 수 있습니다. 그러나 sys.argv와는 다른 인수 세트를 제공해야하는 경우 parse_args으로 전달할 수 있습니다.인수 문자열에서 파이썬 Optparse

하지만 문자열이 아닌 숫자를 전달해야한다면 무엇을합니까? parse_args?

>>> argument_string = "-a arga -b \"argument b\" arg1 arg2" 
>>> parse_arguments(argument_string)" 
['-a', 'arga', '-b', 'argument b', 'arg1', 'arg2'] 

>>> argument_string.split(" ") 
['-a', 'arga', '-b', '"argument', 'b"', 'arg1', 'arg2'] 

때문에 그것을 잘라하지 않습니다

은 정말이 작업을 수행하는 기능이 필요합니다. 의견이 있으십니까? 이것에 대한

>>> import shlex 
>>> argument_string = "-a arga -b \"argument b\" arg1 arg2" 
>>> l = shlex.split(argument_string) 
>>> l 
['-a', 'arga', '-b', 'argument b', 'arg1', 'arg2'] 

답변

5

shlex 모듈 (물론, 그것이 ...에 대한 있다는 한 가지)을위한 것입니다
4

사용 shlex 모듈 :

>>> import shlex 
>>> shlex.split("-a arga -b \"argument b\" arg1 arg2") 
['-a', 'arga', '-b', 'argument b', 'arg1', 'arg2']