第1单 1.10 添加命令行参数
使用argparse添加命令行参数,代码如下:
import argparse
  
def main(number):
    print('#' * number)
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    #parser.add_argument('number', type=int,help='A number')
    parser.add_argument('number', type=int,help='一个整数')
    args = parser.parse_args()
    main(args.number)
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step1.py
usage: recipe_cli_step1.py [-h] number
recipe_cli_step1.py: error: the following arguments are required: number
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step1.py -h
usage: recipe_cli_step1.py [-h] number
positional arguments:
number 一个整数
optional arguments:
-h, --help show this help message and exit
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step1.py 4
####
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step1.py not_a_number
usage: recipe_cli_step1.py [-h] number
recipe_cli_step1.py: error: argument number: invalid int value: 'not_a_number'
import argparse
def main(character, number):
    print(character * number)
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    #parser.add_argument('number', type=int, help='A number')
    parser.add_argument('number', type=int, help='一个整数')
    #parser.add_argument('-c', type=str, help='Character to print', default='#')
    parser.add_argument('-c', type=str, help='打印的字符', default='#') #默认为'#'
    args = parser.parse_args()
    main(args.c, args.number)
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step2.py
usage: recipe_cli_step2.py [-h] [-c C] number
recipe_cli_step2.py: error: the following arguments are required: number
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step2.py -h
usage: recipe_cli_step2.py [-h] [-c C] number
positional arguments:
number 一个整数
optional arguments:
-h, --help show this help message and exit
-c C 打印的字符
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step2.py 4
####
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step2.py 5 -c m
mmmmm
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step2.py -c m 5
mmmmm
import argparse
def main(character, number):
    print(character * number)
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    #parser.add_argument('number', type=int, help='A number')
    parser.add_argument('number', type=int, help='一个整数')
    #parser.add_argument('-c', type=str, help='Character to print', default='#')
    parser.add_argument('-c', type=str, help='打印的字符', default='#')
    #parser.add_argument('-U', action='store_true', default=False, dest='uppercase', help='Uppercase the character')
    parser.add_argument('-U', action='store_true', default=False, dest='uppercase', help='输入该参数将字符转换成大写')
    args = parser.parse_args()
    if args.uppercase:
        args.c = args.c.upper()
    main(args.c, args.number)
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step3.py
usage: recipe_cli_step3.py [-h] [-c C] [-U] number
recipe_cli_step3.py: error: the following arguments are required: number
huangsiyangdeiMac:ch01 huangsiyang$
huangsiyangdeiMac:ch01 huangsiyang$
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step3.py -h
usage: recipe_cli_step3.py [-h] [-c C] [-U] number
positional arguments:
number 一个整数
optional arguments:
-h, --help show this help message and exit
-c C 打印的字符
-U 输入该参数将字符转换成大写
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step3.py 6
######
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step3.py 6 -c f
ffffff
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step3.py 6 -c f -U
FFFFFF
huangsiyangdeiMac:ch01 huangsiyang$ python recipe_cli_step3.py 6 -c %
%%%%%%
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号