Python进阶篇-020. 优雅传参
[toc]
一、创作声明
进阶篇是对基础篇的补充,这里面更多的是各种常用库、高级语法糖的教程,因此,进阶篇的内容会比较零碎。在创作过程中,同样会借助ChatGPT来辅助。
二、优雅传参
带着这个问题来看本文:Python如何优雅传参。比如python hdfs -ls /
用来查询hdfs的根路径,python yarn -kill applicationid_xxx
用来杀死指定的application。
在Python中,可以使用命令行参数解析库来优雅地传递参数。一个常用的库是argparse
,它可以帮助我们定义和解析命令行参数。下面是一个示例:
import argparse
# 创建解析器对象
parser = argparse.ArgumentParser()
# 设置公共参数
parser.add_argument("-c", "--config", help="配置文件")
## 这里dest必须为subcommand
subparsers = parser.add_subparsers(dest="subcommand")
# 创建hdfs子命令解析器
hdfs_parser = subparsers.add_parser("hdfs")
hdfs_parser.add_argument("-ls", metavar="path", help="查询HDFS路径")
# 创建yarn子命令解析器
yarn_parser = subparsers.add_parser("yarn")
yarn_parser.add_argument("-kill", metavar="appid", help="杀死Yarn应用")
# 解析命令行参数
args = parser.parse_args()
# 根据子命令执行相应的操作
if args.subcommand == "hdfs":
if args.ls:
print("查询HDFS路径:", args.ls)
else:
hdfs_parser.print_help()
elif args.subcommand == "yarn":
if args.kill:
print("杀死Yarn应用:", args.kill)
else:
yarn_parser.print_help()
else:
parser.print_help()
运行示例代码时,可以使用以下命令行参数:
python script.py hdfs -ls /
python script.py yarn -kill applicationid_xxx
其中,hdfs
和yarn
为子命令,-ls
和-kill
为选项参数。这样可以较为优雅地传递参数,并根据子命令执行相应的操作。
三、写在最后
更多技术分享,点击传送门:https://github.com/maxiaolu66/profile
Last updated