首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Python中创建命令行界面的最佳方式

重要注意事项: 在创建CLI时,重要是要考虑以下几点: 必需参数:为了程序运行,哪些参数是绝对必需? 文档:写出每个选项参数函数是很重要,这样新用户就可以知道你程序是如何工作。...处理错误情况:让用户确切地知道哪里出了问题 运行时状态:如果任务没有立即完成,您应该打印出当前进度 使用argparse读取参数: Argparse是一个用于解析命令行参数Python标准库模块。...作为程序员,您可以定义要接受参数,而argparse将知道如何从sys中解析这些参数。当用户给程序提供无效参数时,Argparse还会自动生成帮助和使用消息,并输出错误。...对于这个例子,我们将域参数设置为必需,而ofile和lines参数将是可选。...“https://ahadsheriff.com"') 现在运行带有-h参数程序,查看您编写文档!

2.4K20

python3中argparse模块

1、定义:argparse是python标准库里面用来处理命令行参数库2、命令行参数分为位置参数选项参数: 位置参数就是程序根据该参数出现位置来确定...() 创建一个解析对象(3)parser.add_argument() 向该对象中添加你要关注命令行参数选项(4)parser.parse_args() 进行解析 4、argparse.ArgumentParser...: demo1.py [-h] [--ver]demo1.py: error: unrecognized arguments: -j required - 必需参数,通常-f这样选项是可选...,但是如果required=True那么就是必须了 type - 指定参数类型# required标签就是说--ver参数必需,并且类型为int,输入其它类型会报错 parser.add_argument...'%(args.filename))dest - 设置这个选项value解析出来后放到哪个属性中parser.add_argument('-file', choices = ['test1', '

69810
您找到你想要的搜索结果了吗?
是的
没有找到

argparse------用于命令行选项参数和子命令解析

解析器添加-h/——help选项(默认值:True) allow_abbrev - 允许长选项缩写,如果缩写是明确。...如示例所示,如果一个选项标记为required,那么如果该选项不在命令行中,parse_args()将报告一个错误。...必需选项通常被认为是不好形式,因为用户希望选项是可选,因此应该尽可能避免它们。help帮助值是一个字符串,包含参数简短描述。...'Z')Invalid arguments在解析命令行时,parse_args()检查各种错误,包括不明确选项、无效类型、无效选项错误位置参数数量等。...当一个参数添加到组中时,解析器就像对待一个普通参数一样对待它,但是会在一个单独组中显示该参数以获取帮助消息。

6.8K20

Python中参数传递与解析

Python传递命令行参数 Python命令行参数传递和C语言类似,都会把命令行参数保存到argv变量中。对于python而言,argv是sys模块中定义一个list。...需要解析字符串,即sys.argv[1:] 2. 短选项集合。其中跟冒号选项需要后接参数,如'o:'表示'-o'选项需要接参数。 3. 长选项列表。其中跟等号选项需要后接参数。...opts元素是一个元组,保存了解析选项参数对。args保存了除去所有选项选项参数之外,剩下所有参数。 如果解析出错则会抛出GetoptError异常,该异常有一个参数err。...err.opt是出错时正在解析选项,err.msg是错误消息。 出错情况包括: 1. 选项没有在传入参数选项或者长选项列表定义。 2. 需要带参数选项没有跟参数。 3....args属性,存储参数值,flags定义指定选项,flag名字也会作为解析后返回对象属性,存储该选项参数

2K70

Python 模块:argparse

否则, ArgumentParse 将会看到两个 -h/--help 选项(一个在父参数中一个在子参数中)并且产生一个错误。 注解 你在传``parents=``给那些解析器时必须完全初始化它们。...convert_arg_line_to_args())并且它们视为与命令行上原始文件引用参数位于同一位置。...当命令行解析时,参数值将会被检查,并且如果参数不是可接受值之一,一条错误信息将会显示: >>> parser = argparse.ArgumentParser(prog='game.py') >...>>> parser.parse_args(['--foo', 'FOO']) Namespace(foo='FOO', x=None) 对于长选项带有不止一个字符名字选项),选项和值可以通过一个简单命令行参数传递...,不合法类型,不合法选项错误位置参数等。

2.4K10

Apache Commons CLI官方文档翻译 —— 快速构建命令行启动模式

第二个参数是Bool型,代表该选项是否需要额外参数。 第三个参数是该选项描述信息。 上面的例子就代表,t选项不需要参数,它意思是显示当前时间。...解析阶段——解析命令行参数 CLI通过CommandLineParserparse方法解析命令行参数。有好几种CommandLineParser实现类,推荐使用是DefaultParser。...// add c option options.addOption("c", true, "country code"); 第二个参数这时设置为true,就代表它需要额外参数。...buildfile towards the "+ "root of the filesystem and use it" ) .create( "find" ); 最后一个OptionBuilder创建带有参数名称选项...——创建解析器 跟前面类似,创建CommandLineParser解析器,返回CommandLine对象,用于查询选项参数

1.5K50

python--配置文件以及ConfigParser使用

='工程参数描述', epilog=" description参数后显示额外对程序描述") parser.print_help() parser.add_argument('-c'...action - 当参数在命令行中出现时使用动作基本类型。 nargs - 命令行参数应当消耗数目。 const - 一些 action 和 nargs 选择所需求常数。...default - 当参数未在命令行中出现并且也不存在于命名空间对象时所产生值。 type - 命令行参数应当转换成类型。 choices - 可用参数容器。...required - 此命令行选项是否可省略 (仅选项可用)。 help - 一个此选项作用简单描述。 metavar - 在使用方法消息中使用参数值示例。...,使用上节介绍命令行参数配置json文件,然后使用json库进行解析就好。

1.3K100

【Python爬虫实操】 如何在任务中高效处理命令参数

使用argparse库可以轻松定义命令行参数类型、默认值、帮助信息等,并自动生成带有参数选项帮助文档。...以下是一个使用argparse库处理命令行参数示例:  ```python  import argparse  #创建一个解析器  parser=argparse.ArgumentParser(description...='程序描述')  #定义一个命令行参数  parser.add_argument('arg1',type=int,help='参数1说明')  parser.add_argument('--arg2...',type=float,default=0.0,help='参数2说明')  #解析命令行参数  args=parser.parse_args()  #使用命令行参数  print(args.arg1...4.使用合适帮助信息  对命令行程序来说,良好帮助信息是非常重要。argparse库能够帮助我们自动生成带有参数选项帮助文档,但仍需我们提供合适帮助信息。

17660

python模块之getopt(脚本参数解析

args:要解析参数列表,但不包括当前执行python脚本名称,一般等同于sys.argv[1:]。 shortopts:要识别的短选项字符串,如果后接:表示需要给定参数。...如ab:c:,表示识别-a, -b和-c选项,其中-b和-c需要后接参数。如果不需要短选项,可以设置为空字符串。...,将停止选项解析,从该非选项参数开始所有参数全部视为返回值中第二个元素 import getopt args = "-a root 123456 -b --opt1 --opt2".split()...和getopt()类似,但默认使用GNU风格选项解析模式,这意味着选项参数和非选项参数可以混合,而getopt()会在遇到第一个非选项参数时停止解析。...以下几种情况将抛出此异常:a)参数列表中存在不能识别的选项b)某个需要传值选项没有给定值c)传递了值给不需要参数选项。 属性msg和opt分别表示错误信息和相关选项,opt可能为空字符串。

81750

资源 | 斯坦福大学发布Stanford.NLP.NET:集合多个NLP工具

概率解析器使用手工标记句子中获得知识,试图对新句子产生有意义分析。这些基于统计解析器虽然仍然可能产生错误,但通常工作得很好。它们发展是 20 世纪 90 年代自然语言处理领域最大突破之一。...你可以在这里尝试使用它:http://nlp.stanford.edu:8080/parser/ 词汇化概率解析器通过单独 PCFG 结构和语法依赖实现了因子产生模型,其中偏好通过有效精准推理结合...完整版下载包含三个训练过英语标签器模型,一个阿拉伯语标签器模型,一个汉语标签器模型,和一个德语标签器模型。两种版本都包括相同源代码和其它必需文件。...标签器在 GNU General Public License 下授权,包含源码。软件包包括命令行调用,服务器运行和一个 Java API。...分割器现在已经可以下载,在 GNU General Public License 下授权,包含源码。软件包包括命令行调用和一个 Java API。

1.4K60

使用 Apache Commons CLI 开发命令行工具示例

,例如 tar -zxvf foo.tar.gz 2.GNU参数形式,例如 du --human-readable --max-depth=1 3.Java 命令中参数形式,例如 java -...Djava.net.useSystemProxies=true Foo 4.短杠参数参数参数形式,例如 gcc -O2 foo.c 5.长杠参数不带参数形式,例如 ant – projecthelp...CLI 命令代码实现 命令行程序处理流程相对比较简单,主要流程为设定命令行参数 -> 解析输入参数 -> 使用输入数据进行逻辑处理 CLI 定义阶段 每一条命令行都必须定义一组参数,它们用来定义应用程序接口...在这个代码片段中,第一个参数只是列出帮助文件,不需要用户输入任何值,而第二个参数则是需要用户输入 HTTP 通信协议,所以这两个 option 第二个参数分别为 false 和 true CLI 解析阶段...= { "-h", "-c", "config.xml" };         testOptions(arg);     }     public static void testOptions

1.6K20

斯坦福Stanford.NLP.NET:集合多个NLP工具

概率解析器使用手工标记句子中获得知识,试图对新句子产生有意义分析。这些基于统计解析器虽然仍然可能产生错误,但通常工作得很好。它们发展是 20 世纪 90 年代自然语言处理领域最大突破之一。...你可以在这里尝试使用它:http://nlp.stanford.edu:8080/parser/ 词汇化概率解析器通过单独 PCFG 结构和语法依赖实现了因子产生模型,其中偏好通过有效精准推理结合...完整版下载包含三个训练过英语标签器模型,一个阿拉伯语标签器模型,一个汉语标签器模型,和一个德语标签器模型。两种版本都包括相同源代码和其它必需文件。...标签器在 GNU General Public License 下授权,包含源码。软件包包括命令行调用,服务器运行和一个 Java API。...分割器现在已经可以下载,在 GNU General Public License 下授权,包含源码。软件包包括命令行调用和一个 Java API。

1.6K80

Commons CLI 入门及代码简单分析

前言 以前写过一些命令行程序,在需要带参数时候都是自己来判断args,导致程序光解析args都占了好大一堆,而且解析代码也不美观。 偶然间发现了apache公共库中cli库,在这里分享给大家。...//1.3.1中已经弃用针对不同格式入参对应解析器 //CommandLineParser parser = new PosixParser();...其实现是采用一个HashMap来存储Option,key是Option中选项或者短选项第一个字符,如果短选项存在,则优先选择短选项。...Options类是解析对象,使用者可以在Options实例中直接添加命令,也可以添加Option实例,也可以添加OptionGroup实例。...这个方法会在解析错误时候抛出解析异常。 查询交互 CommandLine可以对入参命令进行判断解析,例如可以查询是否存在某个选项,以及获取这个选项值。

1.1K30

python optparse模块学习

最后,一旦你已经定义好了所有的命令行参数,调用 parse_args() 来解析程序命令行: (options, args) = parser.parse_args() 注: 你也可以传递一个命令行参数列表到...了解选项操作: action 是 parse_args() 方法参数之一,它指示 optparse 当解析到一个命令行参数时该如何处理。...) 注意:这个选项没有长选项,长选项也是可选,如果没有指定dest选项,将用命令行参数名对options对象值进行存取。...你只需要为 add_option() 方法 help 选项指定帮助信息文本: usage = "usage: %prog [options] arg1 arg2" parser = OptionParser...) 自定义程序使用方法: usage = "usage: %prog [options] arg1 arg2" 这行信息会优先打印在程序选项信息前。

96720

Python argparse标准库快速入门

通常是不必要) add_help - 为解析器添加一个 -h/--help 选项(默认值: True) allow_abbrev - 如果缩写是无歧义,则允许缩写长选项 (默认值:True) add_argument...default - 当参数未在命令行中出现时使用值。 type - 命令行参数应当转换成类型。 choices - 可用参数容器。...required - 此命令行选项是否可省略 (仅选项可用)。 help - 一个此选项作用简单描述。 metavar - 在使用方法消息中使用参数值示例。...默认情况下nargs会按照action类型来判断参数个数,store和store_const会读取后面的一个值作为参数。 const 这个参数需要和带有constaction来配合使用。...[-p] greeting 简单实例程序,学习如何解析命令行参数 positional arguments: greeting 问候信息,必需 optional arguments

85610
领券