Python 添加命令行参数步骤

目录
  • 前言
  • 添加命令行参数的一般步骤
  • 命令行参数示例

前言

许多任务程序如果为其构造为一个命令行界面,就可以通过接受不同的参数来改变它的工作方式。例如,在爬虫程序中,不同 URL 通常可以作为命令行参数传递给任务程序,从而可以爬取不同网页中的数据。在 Python 标准库中包含一个强大的 argparse 模块,可以轻松创建丰富的命令行参数解析。

添加命令行参数的一般步骤

在程序脚本中, argparse 的基本使用方式可以分三个步骤显示:

  • 定义脚本要接受的参数,生成新的参数解析器
  • 调用定义的解析器,返回一个包含所有结果参数的对象
  • 使用带有参数的命令调用脚本,使得定义的参数行为生效

一般而言,使用命令行参数的脚本遵循以下结构:

导入相关库
定义函数
定义参数解析器
对参数进行操作
使用参数调用函数,以执行不同操作

其中,一般使用 main 函数来显式的声明代码的执行入口,简单情况下,我们可以直接使用命令行传入的参数而无需进行复杂处理。

命令行参数示例

接下来,我们通过一个示例来了解如何添加并使用命令行参数。首先创建一个脚本 argparse_example.py,该脚本接受单个整数作为位置参数,并打印执行次数的 “Hello world.”。脚本代码如下,我们遵循上述结构,其中定义的 main 仅仅执行打印功能:

import argparse

def main(num):
    print('Hello world.\n' * num)

if __name__ == '__main__':
    parse = argparse.ArgumentParser()
    parse.add_argument('number', type=int, help='A number')
    args = parse.parse_args()

    main(args.number)

在脚本中,参数通过 add_arguments 添加到解析器。定义了所有参数之后,调用 parse_args() 将返回一个包含参数解析结果的对象,如果出现错误则退出执行。

调用脚本并检查参数的使用方式,不带参数调用脚本时会自动显示帮助信息,使用参数 -h 可以显示扩展帮助信息:

$ python argparse_example.py
usage: argparse_example.py [-h] number
argparse_example.py: error: the following arguments are required: number
$ python argparse_example.py -h
usage: argparse_example.py [-h] number

positional arguments:
  number      A number

optional arguments:
  -h, --help  show this help message and exit

使用额外参数调用脚本,可以按程序预期执行脚本:

$ python argparse_example.py 3
Hello world.
Hello world.
Hello world.

$ python argparse_example.py three
usage: argparse_example.py [-h] number
argparse_example.py: error: argument number: invalid int value: 'three'

更改脚本,添加可选参数用于接受所需打印的字符串,且默认值为 “Hello world”,编写argparse_example_2.py 脚本如下所示:

import argparse
def main(string, num):
    print(string * num)
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('num', type=int, help='A number')
    parser.add_argument('-s', type=str, help='String to print', default='Hello world.\n')
    args = parser.parse_args()

    main(args.s, args.num)

再次执行脚本,可以看到帮助已经更新,使用 -s 选项可以打印不同的字符串:

$ python argparse_example_2.py -h
usage: argparse_example_2.py [-h] [-s S] num

positional arguments:
  num         A number

optional arguments:
  -h, --help  show this help message and exit
  -s S        String to print
$ python argparse_example_2.py 3Hello world.
Hello world.
Hello world.

$ python argparse_example_2.py 3 -s 'I love movie'
I love movieI love movieI love movie

在实际场景中,我们应当为每个参数都添加一个帮助描述信息,参数可以分为位置参数和可选参数,它们的使用方式具有较大差别:

  • 如果参数以 - 开头,则将其视为可选参数,例如脚本中的 -s 参数。否则,该参数为位置参数,如脚本中的数字参数
  • 为了清楚起见,应当始终为可选参数定义默认值。如果不显式的定义默认值,则默认为 None,但这可能会令使用者困惑
  • 同时,在添加命令行参数时应当始终利用 add_agrment() 方法的 help 参数添加带有参数描述的帮助信息,这在调用脚本时即为关键,能够帮助使用者了解每个命令行参数的含义

到此这篇关于Python 添加命令行参数步骤的文章就介绍到这了,更多相关Python 添加命令行参数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python编程之requests在网络请求中添加cookies参数方法详解

    哎,好久没有学习爬虫了,现在想要重新拾起来.发现之前学习爬虫有些粗糙,竟然连requests中添加cookies都没有掌握,惭愧.废话不宜多,直接上内容. 我们平时使用requests获取网络内容很简单,几行代码搞定了,例如: import requests res=requests.get("https://cloud.flyme.cn/browser/index.jsp") print res.content 你没有看错,真的只有三行代码.但是简单归简单,问题还是不少的. 首先,这

  • 正则给header的冒号两边参数添加单引号(Python请求用)

    正则给header的冒号两边参数添加单引号(Python请求用) 直接从浏览器Chrome复制header值如下: Host: kyfw.12306.cn Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Accept: */* X-Requested-With: XMLHttpRequest If-Modified-Since: 0 User-Agent: Mozilla/5.0 (Windows NT 6.1; W

  • Python如何读取csv文件时添加表头/列名

    目录 读取csv文件时添加表头/列名 解决方法 更改csv文件表头 读取csv文件时添加表头/列名 有时,我们读取的csv文件数据时发现没有表头/列名,是因为Python读取csv文件数据本来就没有表头,用pandas.read读取时,则第一行自动会被识别为columns,从而给后面的分析造成不便,这时候需要我们在读取文件数据的同时添加列名. 解决方法 1.在读取文件数据之后再定义列名 df = pd.read_csv('评论.csv',header=None) df.columns = ["昵

  • 对python opencv 添加文字 cv2.putText 的各参数介绍

    如下所示: cv2.putText(img, str(i), (123,456)), font, 2, (0,255,0), 3) 各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细 其中字体可以选择 FONT_HERSHEY_SIMPLEX Python: cv.FONT_HERSHEY_SIMPLEX normal size sans-serif font FONT_HERSHEY_PLAIN Python: cv.FONT_HERSHEY_PLAIN small s

  • Python如何在列表尾部添加元素

    目录 在列表尾部添加元素 列表中添加元素append(),extend(),insert(),+list的区别 下边通过定义和代码演示理解他们的区别 在列表尾部添加元素 在Python中,可以使用append()方法向一个列表的尾部追加一个元素,其基本语法如下: source_list.append(obj) 其中, source_list:为待修改的列表 obj:为待插入的元素 例如,要向guests列表尾部增加客人Hu qi,相应的语句为: # 初始化guests列表 guests=['Zh

  • python如何往列表头部和尾部添加元素

    目录 往列表头部和尾部添加元素 往头部添加元素 往尾部添加元素 往list添加元素的几种方法 往列表头部和尾部添加元素 往头部添加元素 list.insert(index,new_element) @@@index为新元素的插入位置,当index=0时,往头部添加新元素. @@@new_element为要插入的元素. 例子: names.insert(0,'Bill') 往尾部添加元素 list.append(new_element) 例子: names.append('Bill') 往list

  • Python中添加搜索路径的方法实例

    目录 Python添加搜索路径 附:python临时添加搜索路径 总结 Python添加搜索路径 1. 程序中添加 利用 sys.path 进行添加, 例如: import sys sys.path.append('/Users/username/Documents/') sys.path 以及可以利用 sys.path 输出目前所包含的目录. 2. 利用 .pth 文件进行添加 在 lib/python 所安装的目录下的 lib/python/site-packages/ 目录下增加一个 .p

  • Python 获得命令行参数的方法(推荐)

    本篇将介绍python中sys, getopt模块处理命令行参数 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数:len(sys.argv) 脚本名:    sys.argv[0] 参数1:     sys.argv[1] 参数2:     sys.argv[2] test.py import sys print "脚本名:", sys.argv[0] for i in range(1, len(sy

  • Python处理命令行参数模块optpars用法实例分析

    本文实例讲述了Python处理命令行参数模块optpars用法.分享给大家供大家参考,具体如下: optpars是python中用来处理命令行参数的模块,可以自动生成程序的帮助信息,功能强大,易于使用,可以方便的生成标准的,符合Unix/Posix 规范的命令行说明. 使用 add_option() 来加入选项,使用 parse_args() 来解析命令行. add_option()中参数 第一个参数表示option的缩写,以单个中划线引导,例如-f.-d,只能用单个字母,可以使用大写; 第二个

  • python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法:sys.argv.argparse解析.getopt解析 方法一:sys.argv -- 命令行执行:python test_命令行传参.py 1,2,3 1000 # test_命令行传参.py import sys def para_input(): print(len(sys.argv)) #

  • Python中的命令行参数解析工具之docopt详解

    前言 docopt 是一个开源的库,代码地址:https://github.com/docopt/docopt.它在 README 中就已经做了详细的介绍,并且还附带了很多例子可供学习,这篇文章也是翻译一下 README 中内容-- docopt 最大的特点在于不用考虑如何解析命令行参数,而是当你把心中想要的格式按照一定的规则写出来后,解析也就完成了. docopt的安装 docopt有很多种版本,分别支持不同的语言,最简答的docopt支持python脚本,docopt.java支持java脚

  • Python解析命令行读取参数--argparse模块使用方法

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写起来更麻烦一些. 如果脚本很简单或临时使用,没有多个复杂的参数选项,可以直接利用sys.argv将脚本后的参数依次读取(读进来的默认是字符串格式).比如如下名为test.py的脚本: import sys print "Input argument is %s" %(sys.argv[0]

  • python命令行参数用法实例分析

    本文实例讲述了python命令行参数用法.分享给大家供大家参考,具体如下: 在命令行下执行某些命令的时候,通常会在一个命令后面带上一些参数,这些参数会传递到程序里,进行处理,然后返回结果,在linux 下很多命令其实也是用python来实现的.那么如果做到在命令行输入类似如下的命令并能得到正确的解析呢,比如 python commandline.py -l c:/temp -f c:/aaa.txt 这样的命令,并在程序中进行处理.下面详细介绍处理办法. python为我们提供了一个模块叫opt

  • python的pytest框架之命令行参数详解(上)

    前言 pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作.pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixture模型.pytest是一个软件测试框架,是一款命令行工具,可以自动找到测试用例执行,并且回报测试结果.有丰富的基础库,可以大幅度提高用户编写测试用例的效率.具备扩展性,用户可以自己编写插件,或者安装第三方提供的插件.可以很容易地与其他工具集成到一起使用.比如持续集成,web自动化测试等. 下面列举了

  • Python中最好用的命令行参数解析工具(argparse)

    Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解析的模块来帮你做这个苦力活. Python 本身就提供了三个命令行参数解析模块,我这里罗列一下它们的大致情况供你了解. getopt,只能简单的处理命令行参数 optparse,功能强大,易于使用,可以方便地生成标准的.符合Unix/Posix 规范的命令行说明. argparse,使其更加容易的编

  • Python命令行参数解析工具 docopt 安装和应用过程详解

    什么是 docopt? 1.docopt 是一种 Python 编写的命令行执行脚本的交互语言. 它是一种语言! 它是一种语言! 它是一种语言! 2.使用这种语言可以在自己的脚本中,添加一些规则限制.这样脚本在执行的时候就必须按照这样格式来执行,同时,也可以很方便的编写一些帮助信息(其实很多软件在输入 -h 的时候显示信息 .例如 python -h ,会显示所有的 python 指令,并且页通过 docopt 限制了 python 指令的格式),下面是一些简单的例子: docopt 的安装 d

  • Python如何使用argparse模块处理命令行参数

    这篇文章主要介绍了Python如何使用argparse模块处理命令行参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍 argparse是python3标准库里用来处理命令行参数的模块 使用三步走: 创建 ArgumentParser() 对象 调用 add_argument() 方法添加参数 使用 parse_args() 解析添加的参数 实例 我们先来创建一个python文件 vim test.py 然后开始在输入模式(i)下输入代码

随机推荐

其他