设为首页 收藏本站
查看: 734|回复: 0

[经验分享] Python命令行模块argparse

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-22 10:41:20 | 显示全部楼层 |阅读模式

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--address', nargs = '*', default='localhost', help =  "Mandatory, the address to connect")
parser.add_argument('-p', '--port', type=int, help = "The port to listen on. Default is 3868", default=3868)
parser.add_argument('--printbody', action='store_true', default = False, help="Optional. If print body of response")
parser.add_argument('--file', action = 'store', dest='file', help = "Default configuration file")

args = parser.parse_args()
print("the address is:", args.address)
print("the port listened on is:", args.port)
if(args.printbody):
    print("printbody exist")
else:
    print("printbody not exist")
print("config file:", args.file)


程序help输出如下:C:\>python argparse_t.py --helpusage: argparse_t.py [-h] [--address [ADDRESS [ADDRESS ...]]] [-p PORT]                     [--printbody] [--file FILE]optional arguments:  -h, --help            show this help message and exit  --address [ADDRESS [ADDRESS ...]]                        Mandatory, the address to connect  -p PORT, --port PORT  The port to listen on. Default is 3868  --printbody           Optional. If print body of response  --file FILE           Default configuration file 执行输出; C:\>python argparse_t.py --addres 10.10.10.10 --port 3868 --file config.cfg --printbodythe address is: ['10.10.10.10']the port listened on is: 3868printbody existconfig file: config.cfgadd_argument()参数解释:(1)nargs:表示该选项可以多个,比如--address选项的help中显示 [ADDRESS [ADDRESS ...]],选项的值存储在列表中(2)default:选项默认值(3)type:制定选项的类型,当输入类型不符合要求时报错,比如程序中指定port为in类型,当输入字符时,报错入下:python argparse_t.py --port d,argparse_t.py: error: argument -p/--port: invalid int value: 'd'(4)help:--help中的输出信息(5)action    store:默认action模式,存储值到指定变量。  store_const:存储值在参数的const部分指定,多用于实现非布尔的命令行flag。  store_true / store_false:布尔开关。可以2个参数对应一个变量。  append:存储值到列表,该参数可以重复使用。  append_const:存储值到列表,存储值在参数的const部分指定。  version 输出版本信息然后退出。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247783-1-1.html 上篇帖子: Python在不同目录下的导入 下篇帖子: Python之Pycharm常用快捷键
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表