python从命令行获取参数,如何为python代码传递命令行参数
获取python命令行参数的实现方法:自己解析,自给自足(batteries-included)的方式,以及大量的第三方方式.
1.自己解析
你可以从sys模块中获得程序的参数。
importsys
if__name__==__main__:
forvalueinsys.argv:
打印(值)2.自给自足
Python标准库中已经实现了几个参数解析模块:getopt、optparse和最新的argparse。Argparse允许程序员为用户提供一致且有帮助的用户体验,但就像它的GNU前辈一样,它需要程序员做大量的工作和“模板代码”才能让它“工作”。
fromargparseimportArgumentParser
if__name__==__main__:
arg parser=argument parser(description= my cool program )
argparser.add_argument( - foo ,-f ,help=Ausersuppliedfoo )
argparser.add_argument( - bar ,-b ,help=Ausersuppliedbar )
results=argparser.parse_args()
打印(结果. foo,结果. bar)3.CLI 的现代方法
Click framework使用decorator构建命令行解析。
导入点击
@click.command()
@click.option(-f ,- foo ,default=foo ,help=Usersuppliedfoo )
@click.option(-b ,- bar ,default=bar ,help=Usersuppliedbar )
defecho(foo,bar):
我的冷却程序
it does stuff . hereisthedocumentationforit。
打印(foo,bar)
if__name__==__main__:
Echo()向Click接口添加参数就像向堆栈添加另一个装饰器和向函数定义添加新参数一样简单。
知识拓展:
Typer是基于Click的更新CLI框架,它将Click的功能与现代Python类型提示结合在一起。使用Click的一个缺点就是你要给功能加一堆装饰。CLI参数必须在两个地方指定:装饰器和函数参数列表。Typer省去了你制作轮子写CLI规范,让代码更容易阅读和维护。
importtyper
cli=typer。打字者()
@cli.command()
defecho(foo:str=foo ,bar:str=bar):
我的冷却程序
it does stuff . hereisthedocumentationforit。
打印(foo,bar)
if__name__==__main__:
Cli()您可以根据自己的使用案例选择使用上述方法。如需了解更多python实用知识,点击进入PyThon学习网教学中心。
(推荐操作系统:windows7系统,Python 3.9.1,戴尔G3电脑。)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。