python获取命令行参数实例方法讲解

Python 在命令行解析方面给出了类似的几个选择:自己解析, 自给自足(batteries-included)的方式,以及大量的第三方方式

自己解析

你可以从 sys 模块中获取程序的参数。

import sys
 
if __name__ == '__main__':
   for value in sys.argv:
       print(value)

自给自足

在 Python 标准库中已经有几个参数解析模块的实现: getopt 、 optparse ,以及最近的 argparse 。argparse 允许程序员为用户提供一致的、有帮助的用户体验,但就像它的 GNU 前辈一样,它需要程序员做大量的工作和“ 模板代码 ”才能使它“奏效”。

from argparse import ArgumentParser
 
if __name__ == "__main__":
 
   argparser = ArgumentParser(description='My Cool Program')
   argparser.add_argument("--foo", "-f", help="A user supplied foo")
   argparser.add_argument("--bar", "-b", help="A user supplied bar")
   
   results = argparser.parse_args()
   print(results.foo, results.bar)

CLI 的现代方法

Click 框架使用 装饰器 的方式来构建命令行解析。

import click
 
@click.command()
@click.option("-f", "--foo", default="foo", help="User supplied foo.")
@click.option("-b", "--bar", default="bar", help="User supplied bar.")
def echo(foo, bar):
    """My Cool Program
   
    It does stuff. Here is the documentation for it.
    """
    print(foo, bar)
   
if __name__ == "__main__":
echo()

在 Click 接口中添加参数就像在堆栈中添加另一个装饰符并将新的参数添加到函数定义中一样简单。

知识拓展:

Typer 建立在 Click 之上,是一个更新的 CLI 框架,它结合了 Click 的功能和现代 Python 类型提示 。使用 Click 的缺点之一是必须在函数中添加一堆装饰符。CLI 参数必须在两个地方指定:装饰符和函数参数列表。Typer 免去你造轮子 去写 CLI 规范,让代码更容易阅读和维护。

import typer
 
cli = typer.Typer()
 
@cli.command()
def echo(foo: str = "foo", bar: str = "bar"):
    """My Cool Program
   
    It does stuff. Here is the documentation for it.
    """
    print(foo, bar)
   
if __name__ == "__main__":
cli()

到此这篇关于python获取命令行参数实例方法讲解的文章就介绍到这了,更多相关python获取命令行参数实现方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 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 如何利用argparse解析命令行参数

    命令行参数工具是我们非常常用的工具,比如当我们做实验希望调节参数的时候,如果参数都是通过硬编码写在代码当中的话,我们每次修改参数都需要修改对应的代码和逻辑显然这不太方便.比较好的办法就是把必要的参数设置成通过命令行传入的形式,这样我们只需要在运行的时候修改参数就可以了. sys.argv 解析命令行传入参数最简单的办法就是通过sys.argv,sys.argv可以获取到我们通过命令行传入的参数. import sys print(sys.argv) 用法很简单,只需要调用sys.argv即可.a

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

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

  • Python 获取命令行参数内容及参数个数的实例

    执行python脚本的时候,有时需要获取命令行参数的相关信息.C语言通过argc和argv来获取参数的个数和参数的内容,python中通过sys模块的argv来获取参数的内容,使用len(sys.argv)获取参数的个数. 示例代码: # -*- coding: utf-8 -*- """ Created on Fri Sep 28 14:17:33 2018 @author: sdc """ import sys for i in range(

  • 浅谈Python 命令行参数argparse写入图片路径操作

    什么是命令行参数? 命令行参数是在运行时给予程序/脚本的标志.它们包含我们程序的附加信息,以便它可以执行. 并非所有程序都有命令行参数,因为并非所有程序都需要它们. 为什么我们使用命令行参数? 如上所述,命令行参数在运行时为程序提供附加信息. 这允许我们在不改变代码的情况下动态地为我们的程序提供不同的输入 . 您可以绘制命令行参数类似于函数参数的类比.如果你知道如何在各种编程语言中声明和调用函数,那么当你发现如何使用命令行参数时,你会立刻感到宾至如归. 鉴于这是计算机视觉和图像处理博客,您在这里

  • python获取命令行参数实例方法讲解

    Python 在命令行解析方面给出了类似的几个选择:自己解析, 自给自足(batteries-included)的方式,以及大量的第三方方式. 自己解析 你可以从 sys 模块中获取程序的参数. import sys   if __name__ == '__main__':    for value in sys.argv:        print(value) 自给自足 在 Python 标准库中已经有几个参数解析模块的实现: getopt . optparse ,以及最近的 argpars

  • python 获取命令行参数 函数

    import sys print sys.argv print len(sys.argv) #参数个数 print sys.argv[1] #第一个参数 print sys.argv[2]

  • python获取命令行输入参数列表的实例代码

    (一)单一独立的参数 如果命令行输入的参数都是各自单一独立的,直接用个循环把所有参数逐一读出来就行了.sys模块里面直接用args = sys.argv就可以获取到所有参数了(返回值args是一个list),args0]是执行的python文件路径名,args[1:]后面的才是真正命令行输入的参数,用个for循环就可以一一读取args列表,示例代码如下: import sys def usage(): print """ This is usage. This is usag

  • PHP如何获取命令行参数

    使用 PHP 开发的同学多少都会接触过 CLI 命令行.经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的 GET . POST 一样为这些命令行脚本提供参数.比如在针对某些日期做统计的脚本,就需要传递一个日期给它,这样我们就统计指定日期的一些数据.这类需求应该非常常见,那么,我们都是如何来接收这些命令行的参数的呢?今天,就来介绍一下这方面的内容. $argv 获得所有空格分隔的参数列表 这个变量估计是大家用得比较多的一个接参变量了.它是 PHP 为我们准

  • shell学习教程获取命令行参数示例

    复制代码 代码如下: #! /bin/bashwhile getopts a:bc optdocase $opt ina)echo "aaa"echo $OPTARG b)echo "bb" c)echo "ccc" *)echo "error" esacdone

  • shell获取命令行参数示例分享

    复制代码 代码如下: #! /bin/bash while getopts a:bc optdo  case $opt in    a)      echo "aaa"      echo $OPTARG b)      echo "bb" c)      echo "ccc" *)      echo "error" esacdone

  • Python实现获取命令行输出结果的方法

    本文实例讲述了Python实现获取命令行输出结果的方法.分享给大家供大家参考,具体如下: Python获取命令行输出结果,并对结果进行过滤找到自己需要的! 这里以获取本机MAC地址和IP地址为例! # coding: GB2312 import os, re # execute command, and return the output def execCmd(cmd): r = os.popen(cmd) text = r.read() r.close() return text # wri

  • python实现读取命令行参数的方法

    本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对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 rang

  • node获取命令行中的参数详解

    目录 认识process process.arg 封装获取参数函数 认识process 在开发cli工具时,往往离不开获取指令中各种参数信息,接下来本文将带着你如何在Node.js中获取执行时的参数 process是nodejs内置的一个对象,该对象提供了当前有关nodejs进程的信息.(例如获取当前进程id,执行平台等与当前执行进程相关的对象和方法) node process文档 process.arg 在该对象中,有一个arg属性,它可以获取当前node执行时传入各个参数数据. 我们创建一个

随机推荐