9

私は次のようにargparse引数を設定しています:

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'])

ただし、を実行するscript.py -k kindledx http://url.comと、次のエラーが発生します。gallery2kindle.py: error: argument -k: expected one argument

フラグ「-k」の後に「kindledx」を使用したときに引数が呼び出されませんでしたか?

4

2 に答える 2

8

フラグ「-k」の後に「kindledx」を使用すると、引数が呼び出されませんでしたか?

print argsそうでした。 afterを追加するとargs = parser.parse_args()、解析が機能することがわかります。

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

しかし、この行で

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

k に引数を渡しません。比較

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

生産する

Namespace(dropbox_dir=None, gallery_name='Gallery', kindle_type='kindledx', url='imgur_url')
于 2012-06-12T15:45:28.077 に答える