您的位置:首页技术文章
文章详情页

Python命令行参数argv和argparse该如何使用

【字号: 日期:2022-06-28 08:54:30浏览:3作者:猪猪
概述

运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式:

sys.argv - 简洁 argparse - 丰富,可自定义

下面详细说一下具体时使用

argv

# test_argv.pyimport sysargs = sys.argvprint(f’args = {args}’)>>> output➜ git:(master) python3 test_argv.py args = [’test_argv.py’]➜ git:(master) ✗ python3 test_argv.py 1 2 3args = [’test_argv.py’, ’1’, ’2’, ’3’]➜ git:(master) ✗ python3 test_argv.py 1 2 3 ’hello world !’args = [’test_argv.py’, ’1’, ’2’, ’3’, ’hello world !’]

从上面可以看出,通过argv方法获取的结果:

返回为list 第一个参数为脚本本身 如参数中间带空格,用引号即可 argparse

argparse模块的功能较为丰富,其核心是通过add_argument方法自定义入参的:标志、格式、类型和范围等特性,常用如下:

*name_or_flag - 定义入参名或flag,如’-n’, ’--number’ type - 指定入参类型 choices - 指定入参范围 default - 指定入参默认值 required - 指定该餐素是否不要,布尔类型 help - 参数概述

更多请参考: argparse

实例

test_argv.py

import argparse# 初始化一个parser对象parser = argparse.ArgumentParser(description=’test module of argparse’)# 指定-n/--number的参数# 类型为int# help为简短地说明parser.add_argument( ’-n’, ’--number’, type=int, help=’args of number’)# 指定-o/--output参数# 并限制类型为:[’txt’, ’csv’, ’doc’]parser.add_argument( ’-o’, ’--output’, type=str, choices=[’txt’, ’csv’, ’doc’], help=’output method’)# 指定-d/--default参数# 并限制类型为:[’txt’, ’csv’, ’doc’]parser.add_argument( ’-d’, ’--default’, type=int, choices=[_ for _ in range(1, 10)], default=5, help=’default’)# 指定位置参数fooparser.add_argument(’foo’)args = parser.parse_args()print(f’args = {args}’)# 获取指定参数print( f’number = {args.number}, type = {type(args.number)}n’ f’output = {args.output}, type = {type(args.output)}n’ f’default = {args.default}, type = {type(args.default)}n’ f’foo = {args.foo}, type = {type(args.foo)}’)

output

# -h - 打印help➜ git:(master) ✗ python3 test_argv.py -husage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}] [-d {1,2,3,4,5,6,7,8,9}] footest module of argparsepositional arguments: foooptional arguments: -h, --help show this help message and exit -n NUMBER, --number NUMBER args of number -o {txt,csv,doc}, --output {txt,csv,doc} output method -d {1,2,3,4,5,6,7,8,9}, --default {1,2,3,4,5,6,7,8,9} default# 不带参数运行,结果为None➜ git:(master) ✗ python3 test_argv.py args = Namespace(number=None, output=None)number = Noneoutput = None# 带参数运行➜ git:(master) ✗ python3 test_argv.py -n 33 --output txtargs = Namespace(number=33, output=’txt’)number = 33, type = <class ’int’>output = txt, type = <class ’str’># 参数格式错误➜ git:(master) ✗ python3 test_argv.py -n str usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]test_argv.py: error: argument -n/--number: invalid int value: ’str’➜ git:(master) ✗ python3 test_argv.py -o excel usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]test_argv.py: error: argument -o/--output: invalid choice: ’excel’ (choose from ’txt’, ’csv’, ’doc’)# 默认参数 ➜ git:(master) ✗ python3 test_argv.py args = Namespace(default=5, number=None, output=None)number = None, type = <class ’NoneType’>output = None, type = <class ’NoneType’>output = 5, type = <class ’int’>

以上就是Python命令行参数argv和argparse该如何使用的详细内容,更多关于Python命令行参数argv和argparse的资料请关注好吧啦网其它相关文章!

标签: Python 编程
相关文章: