python基础之编写带参数的程式

第一种方法:sys.argv。获取的是参数列表。在使用过程中,最好先用 len(sys.argv) 判断参数的个数,再用sys.argv[0]下标的方式获取参数,获取的参数类型都是str

import sys


if __name__ == '__main__':
    print(sys.argv)

 

sys.argv返回的是参数列表,第一个参数是当前py文件的绝对路径,后面的参数就是自己传递的参数内容。

 

第二种方法:argparse。此方法可以帮助生成帮助文档usage,并且可以规定参数类型,以及帮助不符合规定的参数报错。

先看一个例子:

#!/usr/bin/env python
# _*_ coding: UTF-8 _*_
"""=================================================
@Project -> File    : paramter_re.py
@IDE     : PyCharm
@Author  : zihan
@Date    : 2021/12/23 11:06
@Desc    :
================================================="""
import argparse


if __name__ == '__main__':
    parser = argparse.ArgumentParser()  # 创建ArgumentParser对象
    # 默认参数是一个str
    # parser.add_argument('integers')
    # 必须传入整型数据,否则报错paramter_re.py: error: argument integers: invalid int value: 'a'
    # parser.add_argument('integers', type=int)
    # usage 提示变为N -- usage: paramter_re.py [-h] N
    # parser.add_argument('integers', metavar='N', type=int)
    # 参数为-h时会把help的信息提示给N参数
    # parser.add_argument('integers', metavar='N', type=int, help='It must be a integer')
    # 参数是一个列表,可以是1个或多个整数,传参的话用空格隔开就好,会自动判断多少个整数然后生成整数列表
    # 如果有两个argument都是整数列表的话,会将最后一个整数给到第二个参数
    # parser.add_argument('integers', metavar='N', type=int, nargs='+', help='It must be a integer list')
    # 加了-代表是可选参数,default代表默认是1
    parser.add_argument('-integers', metavar='N', type=int, nargs='+', default=1, help='It must be a integer list')
    args = parser.parse_args()
    print(type(args.integers))
    print(args.integers)
    parser.print_help()

 

输出:

<class 'int'>
1
usage: paramter_re.py [-h] [-integers N [N ...]]

optional arguments:
  -h, --help           show this help message and exit
  -integers N [N ...]  It must be a integer list

 

如果带了'-'的话,表示是可选参数,如果要传值的话就必须是 -integers 1 ,如果没有带'-'表示是必须的参数,可以直接传值1。

posted @ 2021-12-24 14:05  o云淡风轻o  阅读(453)  评论(0编辑  收藏  举报