python常用命令行参数化的几种形式

1. 简介

大家好,我是Taonny!
通常我们在执行一个python脚本时,在python环境配置的情况下,命令行执行 python main.py, 就能运行python文件main.py,实例如下:

main.py

def print_hi(name):
    print(f'Hi, {name}')  


if __name__ == '__main__':
    print_hi('PyCharm')
[Taonny@tn-test1010 /home/script]$ python main.py
Hi, PyCharm
但在很多情况下,我们需要在命令行执行时给脚本传入一些变量参数,可以使脚本运行更加方便灵活
python命令行参数的4中常见方式:
·内置sys.argv
·内置argparse
·内置getopt
·第三方依赖库click

本篇主要介绍内置sys.argv(适用于非正规场景快速构建命令行参数);·内置argparse(适用于参数多、面向用户的正式生产环境)

2. sys.argv

内置sys.argv是构建命令行参数最简单、常用的方式
工作原理:将脚本本身及参数以一个有序列表传入,所以使用的时候传参顺序必须固定,因此,这种方式适用于参数个数较少且场景固定的项目中

test_argv.py

import sys

# 利用sys.argv获取到参数列表
args = sys.argv
print(args)

# 通过打印看看参数
j = 1
for i in args:
    print("传入的第{}个参数是:{}".format(j, i))
    j += 1

# 所以在使用时,我们可以通过列表切片获取除脚本本身的所有有效参数
args = sys.argv[1:]
print(args)

执行结果:

[Taonny@tn-test1010 /home/script]$ python .\test_args.py nihao Taonny
['.\\test_args.py', 'nihao', 'Taonny']
传入的第1个参数是:.\test_args.py
传入的第2个参数是:nihao
传入的第3个参数是:Taonny
['nihao', 'Taonny']

3. argparse

内置argparse可以快速编写清晰的命令行参数脚本,而且能够自动生成帮助是由手册,用户给脚本传入无效或错误参数时能抛出清晰的错误信息
官方文档: https://docs.python.org/zh-cn/3.10/library/argpase.html

构建命令行参数步骤如代码实例:
test_argv.py

import argparse

# 1. 使用argparse模块构建一个命令行参数解析对象
parser = argparse.ArgumentParser(description="命令行参数")

# 2. 添加命令行参数
"""
add_argument()参数简单说明:
第一个参数:参数全称
第二个参数:参数简称
第三个参数:参数类型
第四个参数:参数说明
第五个参数:参数是否为必须参数,默认为False非必要参数
"""
parser.add_argument('--arg1', '-a1', type=int, help='参数1,非必须参数')
parser.add_argument('--arg2', '-a2', type=int, help='参数1,非必须参数')
parser.add_argument('--arg3', '-a3', type=int, help='参数1,必须参数', required=True)

# 3. 解析参数
args = parser.parse_args()
print(args)
print("第1个参数: {}".format(args.arg1))
print("第2个参数: {}".format(args.arg2))
print("第3个参数: {}".format(args.arg3))

在命令行不传入参数执行,输出如下,从输出结果可以看出,执行后抛出了脚本执行用法及错误,且有一个-h的参数,这个时自动生成的帮助文档

[Taonny@tn-test1010 /home/script]$ python .\test_args.py 
usage: test_args.py [-h] [--arg1 ARG1] [--arg2 ARG2] --arg3 ARG3
test_args.py: error: the following arguments are required: --arg3/-a3

在命令行执行python .\test_args.py -h,查看脚本参数帮助文档

[Taonny@tn-test1010 /home/script]$ python .\test_args.py -h
usage: test_args.py [-h] [--arg1 ARG1] [--arg2 ARG2] --arg3 ARG3

命令行参数

options:
  -h, --help            show this help message and exit
  --arg1 ARG1, -a1 ARG1
                        参数1,非必须参数
  --arg2 ARG2, -a2 ARG2
                        参数1,非必须参数
  --arg3 ARG3, -a3 ARG3
                        参数1,必须参数

正确执行python .\test_args.py -a1 1 -a2 2 -a3 3

[Taonny@tn-test1010 /home/script]$ python .\test_args.py -a1 1 -a2 2 -a3 3
Namespace(arg1=1, arg2=2, arg3=3)
第1个参数: 1
第2个参数: 2
第3个参数: 3
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提供的链接是Python官方文档中关于argparse模块的介绍。argparse模块是Python中用于解析命令参数和选项的库。它提供了简单且灵活的方法来处理命令输入,并生成有用的帮助信息。使用argparse模块可以方便地定义和解析命令选项和参数,并且可以自动生成帮助信息和错误消息。所以,通过使用argparse模块,我们可以更方便地处理命令输入,使我们的Python脚本更加灵活和易于使用。 引用中的代码是一个例子,展示了如何使用Python的getopt模块解析命令参数。getopt模块是Python的一个内置标准模块,它与sys.argv模块结合使用,可以直接解析脚本运时的参数。在这个例子中,使用getopt模块获取了传入的数据库连接参数,包括IP地址、用户名、密码和数据库名称,并打印出这些参数的值。通过解析命令参数,我们可以在脚本运时动态地指定这些参数,从而实现更灵活的脚本功能。 所以,"python opts"指的是使用Python的getopt模块解析命令参数的相关操作。这样可以方便地获取用户在运Python脚本时传递的参数,并进相应的处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [最全总结:聊聊 Python 命令参数化几种方式](https://blog.csdn.net/weixin_38037405/article/details/125475841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值