python制作命令行工具_Python 实现命令行工具

Python 做为一个脚本语言,可以方便地写各种工具。当你在服务端、cmd终端要执行某个 .py 文件时。一般都是 python fileName.py 去执行,但是如果我需要输入指定的某些关键参数进行交互时,那该怎么办呢?下面我会介绍两种常用的 Python 命令行工具

一、

sys.argv

sys.argv[0] 是一个从程序外部获取参数的桥梁,参数是列表存储sys.argv : 命令行参数列表,

通过 list 下标获取参数

len(sys.argv) : 命令行参数长度

这种是最简单也是最直接的方式,实际过程中一般我会用这个方法去判断输入参数的长度作为校验;

二、argparse.ArgumentParser()

官网描述:argparse模块使编写用户友好的命令行界面变得容易。该程序定义了所需的参数,而argparse将找出如何从sys.argv中解析这些参数。argparse模块还会自动生成帮助和使用消息,并在用户为程序提供无效参数时发出错误。

argparse 是Python自带的命令行参数解析包,可以方便地读取命令行参数.参数是以存储,可以理解为是一个类对象,通过类的属性获取对应的参数值.

下面讲解一下 ArgumentParser() 的基本关键参数创建一个ArgumentParser实例,ArgumentParser的参数都为关键字参数。

prog :文件名,默认为sys.argv[0],用来在help信息中描述程序的名称。

usage :描述程序用途的字符串

description :help 信息前显示的信息

epilog :help 信息之后显示的信息

parents :由ArgumentParser对象组成的列表,它们的arguments选项会被包含到新ArgumentParser对象中

formatter_class :help信息输出的格式

prefix_chars :参数前缀,默认为’-‘ (最好不要修改)

fromfile_prefix_chars :前缀字符,放在文件名之前

conflict_handler:解决冲突的策略,默认情况下冲突会发生错误,(最好不要修改)

add_help :是否增加-h/-help选项 (默认为True),一般help信息都是必须的。设为False时,help信息里面不再显示-h –help信息

argument_default: - (default: None)设置一个全局的选项的缺省值,一般每个选项单独设置

添加参数选项 -- add_argument  方法

add_argument() 方法有两种参数,可选参数和位置参数。>>> parser.add_argument('-t', '--

testType

')

可选参数 , 传参方式可以是 -e argument or --env=argument 两种方式,不传参数不影响,值为None,可以设置 default 参数

>>> parser.add_argument('env')

位置参数必传, 如果传参少了 testType 的话,那么就会报 error: the following arguments are required: env

因为 env 是位置参数,第一次没传参导致报错了,第二次 env 传了参数正常,testType 是可选参数,可以看出第2/3/4次,可选参数,传或者不传都可以,不影响,传参有两种方式:-t dev or --testType=dev .还可以设置具体的默认值,如果没有这种默认为 None.

add_argument() 方法参数介绍参考博客:name or flags :选项字符串的名字或者列表,例如foo 或者-f, --foo。

action : 在命令行遇到该参数时采取的基本动作类型。

nargs :应该读取的命令行参数数目。

const : 某些action和nargs选项要求的常数值。

default : 如果命令行中没有出现该参数时的默认值。

type : 命令行参数应该被转换成的类型。

choices : 参数可允许的值的一个容器。

required :该命令行选项是否可以省略(只针对可选参数)。

help : 参数的简短描述。

metavar : 参数在帮助信息中的名字。

dest : parse_args()返回的对象要添加的属性名称。

以上就是实际使用过程中的一些常用方法总结,如果有兴趣的小伙伴可以去官方文档了解更多详细的用法,当然如果有疑问也可以给我留言.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值