前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Python实例》基础之argparse,提供一个友好的接口说明,老大说我做的真好

《Python实例》基础之argparse,提供一个友好的接口说明,老大说我做的真好

作者头像
香菜聊游戏
发布2021-08-10 17:25:15
6380
发布2021-08-10 17:25:15
举报
文章被收录于专栏:香菜聊游戏香菜聊游戏

python经常是作为脚本在使用,在大部分的时候我们写的脚本都要给其他人使用,参数的调用常规的情况下需要提供说明文档,说明每个参数是怎么使用的,但是如果是给同组内的程序同学使用,大都不愿意写文档,对于我们程序同学来说写代码更简单,再说源码都给你了要什么文档。

提供文档太费时,又写不好,不提供文档吧又不太又好,今天在python中发现了一个参数解析器,完美的解决这个问题,今天讲一下参数解析器的使用,好了,废话蛮多了,开始吧。

1、模块介绍

模块的源码位置 lib/argparse,如果你在代码中使用的不是这个位置,说明你导入错了。

argparse 可以让你轻松的编写用户友好的命令行接口, argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

2、来个例子

打开控制台,切换到代码所在的位置,然后输入命令:

代码语言:javascript
复制
python ModifyFile.py -h

命令格式:python fileName.py -h

python :表示执行python命令

ModifyFile.py :是我python的文件

-h :表示查看文档

可以看到提示了脚本的使用情况,以及三个参数的说明,完美。

3、自己做个

说再多没有用,怎么做呐?直接代码展示

代码语言:javascript
复制
#!/usr/bin/env python
# encoding: utf-8
"""
@Author: 香菜
@time: 2021/8/2 0002 下午 8:02
"""
import argparse

def get_parser():
    parser = argparse.ArgumentParser(description='工作目录中文件后缀名修改')
    parser.add_argument('work_dir', metavar='WORK_DIR', type=str, nargs=1,help='修改后缀名的文件目录')
    parser.add_argument('old_ext', metavar='OLD_EXT',type=str, nargs=1, help='原来的后缀')
    parser.add_argument('new_ext', metavar='NEW_EXT',type=str, nargs=1, help='新的后缀')
    return parser

if __name__ == '__main__':
    parser = get_parser()
    args = vars(parser.parse_args())
    # 从命令行参数中依次解析出参数
    work_dir = args['work_dir'][0]
    old_ext = args['old_ext'][0]

    print("follow me")

步骤总结:

1、创建一个参数解析器 argparse.ArgumentParser(description='工作目录中文件后缀名修改')

2、增加几个参数 parser.add_argument('work_dir', metavar='WORK_DIR', type=str, nargs=1,help='修改后缀名的文件目录')

3、在使用参数的地方读取参数 vars(parser.parse_args())

4、在pycharm 中如何调用

4.1 在命令行界面查看说明文档
代码语言:javascript
复制
python argFile.py -h

注:这个执行会直接调用 get_parser 方法,你可以加个 print 在函数内验证一下

4.2 调用这个文件执行:
代码语言:javascript
复制
python argFile.py 'aa' 'jpg' 'png'
4.3 pycharm 中调用传参文件

在pycharm 中执行需要参数的文件如果不传递参数会报下面的错误

pycharm 传递参数也很简单,如下图:

注:参数之间空格隔开

debug执行结果看下,可以看到已经能获取到输入的三个参数,完美

5、总结

argparse 的应用场景很明确就是为自己的程序提供命令行接口说明,

这只是入门级别的,如果你想给你的程序更好的参数提示,可以查阅相关文档。

模块的使用频率比较少,但是也需要掌握,如果别人不会只有你会是不是也很牛逼。加油

常规福利

赶紧点赞!!!

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

本文分享自 香菜聊游戏 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、模块介绍
  • 2、来个例子
  • 3、自己做个
  • 4、在pycharm 中如何调用
    • 4.1 在命令行界面查看说明文档
      • 4.2 调用这个文件执行:
        • 4.3 pycharm 中调用传参文件
        • 5、总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档