我是靠谱客的博主 炙热冬天,最近开发中收集的这篇文章主要介绍python argparse 简明教程先看一个完整的例子然后咱们看看一些细节,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文档为本人自己根据官网文档的理解,重新整理,希望可以帮到大家。

argparse是python标准库里面用来处理命令行参数的库
说人话就是:帮助我们能够从终端运行程序,加上需要的参数。

参考资料:

  • https://vra.github.io/2017/12/02/argparse-usage/ (中文资料)
  • https://geek-docs.com/python/python-tutorial/python-argparse.html (中文资料)
  • https://docs.python.org/zh-cn/3/library/argparse.html
  • https://docs.python.org/zh-cn/3/howto/argparse.html#id1

命令行参数分为位置参数选项参数

  • 位置参数就是程序根据该参数出现的位置来确定的
  • 选项参数数是应用程序已经提前定义好的参数,不是随意指定的

先看一个完整的例子

先创建一个hello.py的脚本,里面是下面的代码:

#!/usr/bin/env python3
def main(name):
print("Hello", name, "Wellcome to SIMM!")
if __name__ == "__main__":
from argparse import ArgumentParser
ap = ArgumentParser()
ap.add_argument("-n", "--name", type=str, required=True)
args = ap.parse_args()
main(args.name)

终端运行:

zdx@n100:~$ ./hello.py -n zdx
Hello zdx Wellcome to the world!

而对于一般的脚本,都需要加上标准I/O, 程序的输入和输出,一目了然。

if __name__ == "__main__":
from argparse import ArgumentParser
ap = ArgumentParser()
ap.add_argument("-i", "--input", type=str, required=True,
help="Input of the program.")
ap.add_argument("-o", "--output", type=str, required=True,
help="Output of the program.")
args = ap.parse_args()
main(args.input, args.output)

然后咱们看看一些细节

最简单的用法

(注意其中的是 ‘x’,不是’-x’)

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('x', help="Please input a integer.")
args = parser.parse_args()
print(args.x)

终端运行:

zdx@n100:~$ ./argparse_test.py 1
1

‘x’ 与 ‘-x’ 的区别

多出‘-’,就必须在命令行加上’-x’, 才能传参,不然会报错

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-x', help="Please input a integer.")
args = parser.parse_args()
print(args.x)

终端运行

zdx@n100:~$ ./argparse_test.py -x 1
1

可以是多个‘-’,两个‘–’,三个’—'都可以…

parser.add_argument('--x')

终端运行

zdx@n100:~$ ./argparse_test.py --x 1
1

‘-x’ 与 ‘–x’ 区别

下面用 "–number"来举例子,从命令行传进来的参数,会赋值给args.number.
‘-n’ 方便终端使用,‘–number’ 就是变量的全名

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-n', "--number", help="Please input a integer.")
args = parser.parse_args()
print(args.number)

终端运行:

zdx@n100:~$ ./argparse_test.py -n 1
1

对同一个传参设置多个选项,就必须设置dest参数了

parser.add_argument('-x', '-variable', '-other', dest='x', help="Please input a integer.")

这个概念很好理解,看下示例你就明白了

zdx@n100:~$ ./argparse_test.py -x 1
1
zdx@n100:~$ ./argparse_test.py -variable 1
1
zdx@n100:~$ ./argparse_test.py -other 1
1

add_argument其他参数介绍

add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]):

  • name or flags - 一个命名或者一个选项字符串的列表,例如 foo 或 -f, --foo。
  • action - 当参数在命令行中出现时使用的动作基本类型。
  • nargs - 命令行参数应当消耗的数目。
  • const - 被一些 action 和 nargs 选择所需求的常数。
  • default - 当参数未在命令行中出现时使用的值。
  • type - 命令行参数应当被转换成的类型。
  • choices - 可用的参数的容器。
  • required - 此命令行选项是否可省略 (仅选项可用)。
  • help - 一个此选项作用的简单描述。
  • metavar - 在使用方法消息中使用的参数值示例。
  • dest - 被添加到 parse_args() 所返回对象上的属性名。

最后

以上就是炙热冬天为你收集整理的python argparse 简明教程先看一个完整的例子然后咱们看看一些细节的全部内容,希望文章能够帮你解决python argparse 简明教程先看一个完整的例子然后咱们看看一些细节所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部