前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >怎样学Python 第二十三课 模块化处理用户输入基础

怎样学Python 第二十三课 模块化处理用户输入基础

作者头像
用户1631416
发布2018-04-12 13:45:30
6840
发布2018-04-12 13:45:30
举报
文章被收录于专栏:玄魂工作室玄魂工作室

大家好,今天让我们来了解一个非常有用的模块,我很久以前就没有意识到这一点,这个模块允许我们简单而有效地使用命令行参数,它不仅会为我们处理这些争论,而且如果事情不对,它会产生一个帮助页面。

这篇文章将会一步一步地讲如何使用argparse,所以,让我们开始吧!

第1步:导入Argparse并设置解析器

为了解决问题,我们需要像其他任何模块一样导入argparse

#!/usr/bin/env python import argparse

请注意,我们同样的把Python解释器的路径设置在了顶部。

现在我们已经完成了这个工作,我们需要制作parser,这将用于处理我们的参数,我们可以通过调用argparse中的ArgumentParser()方法并将其存储在变量中来创建parser对象,现在让我们创建我们的解析器:

#!/usr/bin/env python import argparse parser = argparse.ArgumentParser(description=‘This is an example’)

好的,现在我们有了parser,我们可以开始添加参数。请注意,我们还会添加在帮助页面中打印的说明。

第2步:添加并处理你的参数

如果我们要解析参数,我们需要做一些参数,我们可以通过在parser上使用add_argument()方法将参数添加到parser。

我们将在parser中添加3个参数,然后我们将对它们进行一些处理,当我们添加参数时,我们有多个选项,我们将使用其中三个。

我们将有一个参数,它将存储基于其存在的True/False值,存储随后值的参数以及每次找到它时都会增加一个数。

现在我们已经讨论了我们的观点,让我们来看一下代码:

parser.add_argument(‘-s’, ’—string’, help=’Add a string’, action=’store’, default=False, dest=’string’) parser.add_argument(‘-c’, ’—count’, help=’Add 1 to the count’, action=’count’, default=False, dest=’count’) parser.add_argument(‘-t’, ’—true’, help=’Set true var to True’, action=’store_true’, default=False, dest=’true’) args = parser.parse_args()

好的,我们来解释一下这个句子。

我们可以看到,我们首先实际说出我们想要的参数,我们可以将多个flags/switches绑定到相同的参数。这里我们已经为每个参数绑定了两个flag

在我们给flag之后,我们为flag指定帮助,该字符串将在帮助页面生成时作为帮助打印,在帮助字符串之后,我们设置了操作。

如果我们想存储flag后面的任何内容,我们使用store,如果我们想增加计数器的值,我们使用count,并且如果我们想存储一个True/False值,我们使用store_true(注意我们也可以使用store_false)。

在我们完成了这些动作定义之后,我们设置默认值。如果该标志没有提供任何内容,这就是它的最终值,非常简单。最后,我们设定dest。这是目的地的简称,当我们最终解析参数时,它将是结果变量的名称。

我们也在标注了我们的参数,我们通过调用parser上的parse_args()方法并将返回值存储在args变量中。现在我们可以通过调用args,然后在参数中设置dst来处理我们的输入参数。

第3步:处理输入参数

现在我们已经完成了所有的事情,我们可以处理这些输入的参数了。

我们将根据用户输入的内容打印不同的内容,让我们来看看这个评估的代码:

if args.string:print ‘You entered the string: %s” % (args.string)else:print ‘You did not enter a string”if args.count:print ‘You used count ‘ + str(args.count) + ‘ times’else:print ‘You did not use count’if args.true: print ‘You used -t or –true’else: print ‘You did not use -t or –true’

我们可以在这里看到,我们所有的评估实际上只是一堆if/else代码块,它们检查在我们的参数的结果。

第4步:测试你的论点

现在我们已经看到参数将如何评估,我们可以测试它们以查看它们是否有效。首先,让我们来看看由argparse生成的帮助页面:

~# 。/argparse_example.py -husage: argparse_example.py [-h] [-s STRING] [-c] [-t] This is an example optional arguments:-h, --help show this help message and exit-s STRING, --string STRING Add a string-c, --count Add 1 to the count-t, --true Set true var to True~#

好的,我们的帮助页面看起来不错!现在,我们来测试一下我们的输入参数,现在我们将立刻把它们全部给出:

~# ./argparse_example.py –string Test –count -t -cccc -cYou entered the string: TestYou used count 6 timesYou used -t or –true~#

我们的代码工作了!我们的入参已经成功处理。

总结

我们在这里介绍了一些非常有用的事 使用argparse已经使命令行参数对个人来说更容易100万倍,所以我觉得它也能帮助你!

这个模块在试图制作专业水平的脚本时非常有用,这些脚本实际上要更易于编写并且功能强大。

练习

根据今天所学模块,写出一个Python脚本:

参数如下:

-h --heigh 三角形的高

-a–asomething 三角形的底

通过用户输入参数的方式计算三角形的面积。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第1步:导入Argparse并设置解析器
  • 第2步:添加并处理你的参数
  • 第3步:处理输入参数
  • 第4步:测试你的论点
  • 总结
  • 练习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档