argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口。
使用argparse常分为三步:- 创建一个解析器——创建 ArgumentParser() 对象
- 添加参数——调用 add_argument() 方法添加参数
- 解析参数——使用 parse_args() 解析添加的参数
import argparse
def main():
parser = argparse.ArgumentParser(description="Demo of argparse")
parser.add_argument('-n', '--name', type=str, default='Li', help="Your name!")
parser.add_argument('--year', type=int, default=2022)
parser.add_argument('--action', action="store_true") # 命令行输入--action 则action 为真
args = parser.parse_args()
print(args)
name = args.name
year = args.year
print('HelloWorld {} {}'.format(name, year))
if args.action:
print("Action is true!")
else:
print("Action is false!")
if __name__ == '__main__':
main()
-
输入[-h] 显示帮助文档
-
使用默认值时的结果
-
使用命令行修改参数时的结果
action设置为’store_true’,默认是false;当命令行输入了"–action"是为真。
当程序中有多个函数,且想要用命令行控制只运行其中某一个时,可以使用add_subparsers()方法。
示例如下:import argparse
def fun1(args):
print(f"Output: {args.x1 + args.y1}")
def fun2(args):
print(f"Output: {args.x2 + args.y2}")
def main():
parser = argparse.ArgumentParser(description="Demo of argparse")
subparsers = parser.add_subparsers(dest="command")
subparsers_1 = subparsers.add_parser('fun1', help="Use fun1!") # #添加子命令 fun1
subparsers_1.add_argument('--x1', type=float, default=1.0)
subparsers_1.add_argument('--y1', type=float, default=2.0)
subparsers_1.set_defaults(func=fun1) # 设置默认函数
subparsers_2 = subparsers.add_parser('fun2', help="Use fun2!")
subparsers_2.add_argument('--x2', type=float, default=3.0)
subparsers_2.add_argument('--y2', type=float, default=4.0)
subparsers_2.set_defaults(func=fun2)
args = parser.parse_args()
print("Running command {}".format(args.command))
args.func(args)
if __name__ == '__main__':
main()
- 然后想控制运行函数fun1时,命令行输入:
python xxx.py [子命令/函数名字] [--xxx xxx/输入参数]
- python之parser.add_argument()用法——命令行选项、参数和子命令解析器
- Python 关于argparse子命令subparsers()方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)