chap07/sample4.py

サンプルコードのダウンロード

 1#!/usr/bin/env python
 2# -*- coding: utf-8 -*-
 3
 4import sys
 5import argparse
 6
 7
 8def parse_args():
 9    parser = argparse.ArgumentParser(description='Print Greetings')
10    # 整数
11    parser.add_argument('-i', '--integer', type=int,
12                       help='number of output')
13    # 文字列
14    parser.add_argument('-g', '--greeting', type=str,
15                       help='greeting')
16    # 真偽値(デフォルトはFalse)
17    parser.add_argument('-c', '--capitalize', action='store_true', default=False,
18                        help='capitalize or not')
19
20    # デフォルトではsys.argvをパース
21    return parser.parse_args()
22
23
24def print_parse_result(args):
25    # sys.argvを出力
26    print('*** command-line arguments\n' +
27          '{}'.format(sys.argv))
28    print()
29    # パース結果を出力
30    print('*** parse results')
31    kwargs = vars(args)
32    for key, val in kwargs.items():
33        print('option: {} => {}'.format(key, val))
34    print()
35
36
37if __name__ == '__main__':
38    args = parse_args()
39    print_parse_result(args)
40
41    # パースしたオプションを使う
42    print('*** show greetings')
43    for i in range(args.integer):
44        if args.capitalize:
45            print(args.greeting.title())
46        else:
47            print(args.greeting)