python cli_Python中写CLI行命令程序

使用Python的写命令行程序,以argparse是基础,但是有两个更好的工具可以选择,点击和oslo.config

点击

单击可以用于简单的命令行程序,下面是我写的一个演示

$ cd click-demo

$ python setup.py install

$ clickctl

Usage: clickctl [OPTIONS] COMMAND [ARGS]...

Click Demo Command Line Interface

Options:

-v, --verbose show debug message.

--help Show this message and exit.

Commands:

init Initializes a controller cluster on master node.

join join the controller cluster as agent node

status Get cluster node list

$ clickctl init --help

Usage: clickctl init [OPTIONS]

Options:

--advertise-addr TEXT The REST Server advertise address [required]

--help Show this message and exit.

$ clickctl init --advertise-addr=1.1.1.1:80

Try to initialized the cluster

$ clickctl -v init --advertise-addr=1.1.1.1:80

Try to initialized the cluster

The REST Server advertise address: 1.1.1.1:80

oslo.config

可以用于大型复杂命令行程序的开发,特别是命令行参数和ini格式配置文件同时结合使用的命令行程序 我在yabgp / yabmp里使用了oslo.config,命令行的效果如下:

python bin/yabmpd -h

usage: yabmpd [-h] [--config-dir DIR] [--config-file PATH]

[--log-backup-count LOG_BACKUP_COUNT]

[--log-config-file LOG_CONFIG_FILE] [--log-dir LOG_DIR]

[--log-file LOG_FILE] [--log-file-mode LOG_FILE_MODE]

[--nouse-stderr] [--noverbose] [--use-stderr] [--verbose]

[--version] [--bmp-bind_host BMP_BIND_HOST]

[--bmp-bind_port BMP_BIND_PORT] [--bmp-write_dir BMP_WRITE_DIR]

[--bmp-write_msg_max_size BMP_WRITE_MSG_MAX_SIZE]

optional arguments:

-h, --help show this help message and exit

--config-dir DIR Path to a config directory to pull *.conf files from.

This file set is sorted, so as to provide a

predictable parse order if individual options are

over-ridden. The set is parsed after the file(s)

specified via previous --config-file, arguments hence

over-ridden options in the directory take precedence.

--config-file PATH Path to a config file to use. Multiple config files

can be specified, with values in later files taking

precedence. Defaults to None.

--log-backup-count LOG_BACKUP_COUNT

the number of backup log file

--log-config-file LOG_CONFIG_FILE

Path to a logging config file to use

--log-dir LOG_DIR log file directory

--log-file LOG_FILE log file name

--log-file-mode LOG_FILE_MODE

default log file permission

--nouse-stderr The inverse of --use-stderr

--noverbose The inverse of --verbose

--use-stderr log to standard error

--verbose show debug output

--version show program's version number and exit

bmp options:

--bmp-bind_host BMP_BIND_HOST

Address to bind the BMP server to

--bmp-bind_port BMP_BIND_PORT

Port the bind the BMP server to

--bmp-write_dir BMP_WRITE_DIR

The BMP messages storage path

环境变量

另外因为如今容器非常流行,对于容器应用程序的配置,命令行不是很方便,一般采用环境变量的传递方式,如

os.environ.get('MONGODB_URL', 'mongodb://127.0.0.1:27017')

作者: 麦兜搞IT

来源:慕课网

本文原创发布于慕课网 ,转载请注明出处,谢谢合作!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值