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。