前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:快速实现Python 命令行参数

一日一技:快速实现Python 命令行参数

作者头像
青南
发布2019-09-03 18:32:11
4020
发布2019-09-03 18:32:11
举报
文章被收录于专栏:未闻Code未闻Code
我们有时候需要使用 Python 开发一些命令行工具,并在运行命令的时候指定一些参数,例如:
代码语言:javascript
复制
python3 xxx.py --name kingname --salary 999999

对于简单的,只有几个参数的工具,我们可以使用 sys.argv来获取。

如果我们还需要在参数里面输出帮助信息,并且同时兼顾两种格式:

代码语言:javascript
复制
python3 xx.py --name=kingname --salary=999

python3 xxx.py --name kingname --salary=999

那么使用 sys模块就不好用了。此时我们可以使用 argparse。但是如果你阅读它的官方文档:https://docs.python.org/zh-cn/3/howto/argparse.html,你就会发现 argparse写起来还是有点麻烦。

那么有没有简单的方法实现命令行参数呢?答案就是 fire这个库。

首先我们来安装一下它:

代码语言:javascript
复制
python3 -m pip install fire

然后我们来实现一个简单的支持命令行的程序:

代码语言:javascript
复制
import fire

def intro(name, salary):
    print(f'我的名字是:{name}, 我的月薪是{salary}')


if __name__ == '__main__':
    fire.Fire(intro)

这段代码支持三种调用方法,如下图所示:

使用参数 python3 test_fire.py--help可以看到自动生成的帮助信息:

如果漏掉了某些信息,那么就会报错:

那么如果有些参数可要可不要怎么办呢?也非常简单,给函数参数带上默认值即可,例如:

代码语言:javascript
复制
import fire

def intro(name='产品经理', salary=88888):
    print(f'我的名字是:{name}, 我的月薪是{salary}')


if __name__ == '__main__':
    fire.Fire(intro)

运行效果如下图所示:

使用 fire,让你的命令行参数更容易。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档