第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 %

%%%%%%

 

posted @ 2022-04-09 22:16  轻舞飞洋  阅读(32)  评论(0编辑  收藏  举报