如何使用Python的argv和argparse处理命令行参数?

2026-04-20 10:551阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计982个文字,预计阅读时间需要4分钟。

如何使用Python的argv和argparse处理命令行参数?

概述:Python脚本可以通过命令行接收参数,这通常通过`sys.argv`列表实现。除此之外,还有两种常用的自动构建方式:`argparse`和`sys.argv`。

运行Python脚本时,通过命令行方式传入的参数通常有以下两种形式:

1. `sys.argv`:简洁,但功能有限。

2.`argparse`:功能丰富,可自定义,适用于复杂场景。

下面详细说明这两种方式:

1. `sys.argv`:

- 使用方法:在脚本中,`sys.argv`是一个列表,其中包含了命令行参数。 - 示例: python import sys

if len(sys.argv) <2: print(Usage: python script.py ) sys.exit(1)

arg=sys.argv[1] print(fArgument: {arg})

2. `argparse`: - 使用方法:导入`argparse`模块,创建`ArgumentParser`对象,添加参数,解析参数。 - 示例: python import argparse

parser=argparse.ArgumentParser(description=Process some integers.) parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') args=parser.parse_args()

print(fSum: {sum(args.integers)})

概述

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

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

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

argv

# test_argv.py import sys args = sys.argv print(f'args = {args}') >>> output ➜ git:(master) python3 test_argv.py args = ['test_argv.py'] ➜ git:(master) ✗ python3 test_argv.py 1 2 3 args = ['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

如何使用Python的argv和argparse处理命令行参数?

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' ) # 指定位置参数foo parser.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 -h usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}] [-d {1,2,3,4,5,6,7,8,9}] foo test module of argparse positional arguments: foo optional 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 = None output = None # 带参数运行 ➜ git:(master) ✗ python3 test_argv.py -n 33 --output txt args = 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的资料请关注易盾网络其它相关文章!

本文共计982个文字,预计阅读时间需要4分钟。

如何使用Python的argv和argparse处理命令行参数?

概述:Python脚本可以通过命令行接收参数,这通常通过`sys.argv`列表实现。除此之外,还有两种常用的自动构建方式:`argparse`和`sys.argv`。

运行Python脚本时,通过命令行方式传入的参数通常有以下两种形式:

1. `sys.argv`:简洁,但功能有限。

2.`argparse`:功能丰富,可自定义,适用于复杂场景。

下面详细说明这两种方式:

1. `sys.argv`:

- 使用方法:在脚本中,`sys.argv`是一个列表,其中包含了命令行参数。 - 示例: python import sys

if len(sys.argv) <2: print(Usage: python script.py ) sys.exit(1)

arg=sys.argv[1] print(fArgument: {arg})

2. `argparse`: - 使用方法:导入`argparse`模块,创建`ArgumentParser`对象,添加参数,解析参数。 - 示例: python import argparse

parser=argparse.ArgumentParser(description=Process some integers.) parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') args=parser.parse_args()

print(fSum: {sum(args.integers)})

概述

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

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

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

argv

# test_argv.py import sys args = sys.argv print(f'args = {args}') >>> output ➜ git:(master) python3 test_argv.py args = ['test_argv.py'] ➜ git:(master) ✗ python3 test_argv.py 1 2 3 args = ['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

如何使用Python的argv和argparse处理命令行参数?

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' ) # 指定位置参数foo parser.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 -h usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}] [-d {1,2,3,4,5,6,7,8,9}] foo test module of argparse positional arguments: foo optional 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 = None output = None # 带参数运行 ➜ git:(master) ✗ python3 test_argv.py -n 33 --output txt args = 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的资料请关注易盾网络其它相关文章!