2012-06-12 3 views
4

나는 다음과 같은 방식으로 argparse 인수 설정을 가지고 :Argparse : 예상 하나 개의 인수

gallery2kindle.py: error: argument -k: expected one argument라는 인수하지 않은 : 나는 script.py -k kindledx http://url.com을 실행할 때, 나는 다음과 같은 오류가

parser = argparse.ArgumentParser(description='foobar') 
parser.add_argument('url', metavar='URL') 
parser.add_argument('-k', dest='kindle_type', default='kindle3') 
parser.add_argument('-n', dest='gallery_name', default='Gallery') 
parser.add_argument('-d', dest='dropbox_dir') 
args = parser.parse_args() 

print parser.parse_args(['imgur_url', '-k']) 

플래그 '-k'뒤에 'kindledx'를 사용했을 때?

답변

6

Wasn't an argument called when I used 'kindledx' after flag '-k'?

은, 그리고 당신이 args = parser.parse_args()print args를 추가하는 경우, 당신은 구문 분석 작동 볼 수 있습니다 : 당신이을 하지

print parser.parse_args(['imgur_url', '-k']) 

~/coding$ python ap.py -k kindledx http://url.com 
Namespace(dropbox_dir=None, gallery_name='Gallery', kindle_type='kindledx', url='http://url.com') 

을하지만,이 라인 인수를 k에 전달하십시오.

Namespace(dropbox_dir=None, gallery_name='Gallery', kindle_type='kindledx', url='imgur_url') 
을 생산하는

print parser.parse_args(['imgur_url', '-k', 'kindledx']) 

비교