如何在Python中添加命令行参数?

如何在Python中添加命令行参数?

介绍..

Python有一个非常强大的argparse模块,它提供了解析命令行参数的函数。如果我们想从操作系统命令行获取用户输入,而不需要大量的交互或编写一个接受命令行参数的程序,例如提供要解析的URL或接受要上传到S3桶的文件,则可以使用argparse并尽量少的努力。

基本用法

  • 定义您的代码将接受的参数。

  • 调用参数解析器以返回结果对象。

  • 使用这些参数。

简而言之,参数解析器的结构如下所示。

def main(parameters):
<<在此处添加逻辑>>

if __name__ == '__main__':
<< 1.定义参数解析器>>>
<< 2.解析参数>>
<< 3.验证>>
<< 4.调用主要的(parameters)>>

主要函数知道我们代码的入口点是什么。当直接调用代码时,name main‘部分才会执行。

  • 创建一个仅接受一个参数 – 网球选手的字符串 – 的程序。
import argparse

def get_args():
""" Function : get_args
在 .add_argument 中使用的参数
1. metavar - 向用户提供有关数据类型的提示。
- 默认情况下,所有参数都是字符串。

2. type - 实际的Python数据类型
-(请注意没有引号围绕str)

3. help - 关于使用的参数的简短描述

"""

parser = argparse.ArgumentParser(
description='Example for Two positional arguments',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)

# 添加我们的第一个参数player,类型为字符串
parser.add_argument('player',
metavar='player',
type=str,
help='Tennis Player')

return parser.parse_args()

# 定义主函数
def main(player):
print(f" *** {player}已获得20个大满贯冠军。")

if __name__ == '__main__':
args = get_args()
main(args.player)

a)现在,当您从命令行执行此程序而不传递任何参数时,即如果什么都没有给出,它将打印有关调用程序的正确方法的简短使用说明。

In [3]: run <>.ipynb
usage: ipython [-h] player
ipython: error: the following arguments are required: player
An exception has occurred, use %tb to see the full traceback.

b)如果我们提供多个参数,则会再次投诉。该程序抱怨没有定义第二个参数。

c)只有当我们给定程序恰好一个参数时,它才会运行。

2. 创建仅接受两个参数 – 网球选手作为字符串和玩家赢得的大满贯冠军数作为整数 – 的程序。

示范

import argparse

def get_args():
""" Function : get_args
在 .add_argument 中使用的参数
1. metavar - 向用户提供有关数据类型的提示。
- 默认情况下,所有参数都是字符串。

2. type - 实际的Python数据类型
-(请注意没有引号围绕str)

3. help - 关于使用的参数的简短描述

"""

parser = argparse.ArgumentParser(
description='两个位置参数的示例',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)

#添加第一个参数player,类型为字符串
parser.add_argument('player',
metavar='player',
type=str,
help='网球选手')

#添加我们的第二个参数player_titles,类型为整数/数字
parser.add_argument('titles',
metavar='titles',
type=int,
help='网球选手大满贯冠军数')

return parser.parse_args()

#定义主函数
def main(player, titles):
print(f" *** {player}已赢得{titles}个大满贯冠军。")

if __name__ == '__main__':
args = get_args()
main(args.player, args.titles)

现在打开您的终端并执行该程序。如果没有传递参数,脚本会显示清晰的错误消息。

输出

<<< python test.py
使用: test.py [-h] player titles
test.py: 错误:缺少以下参数: player, titles

<<< python test.py federer 20
*** 弗德勒获得了20个大满贯冠军。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程