当前位置: 首页 > news >正文

秦皇岛网站制作报价网站建设优化网站排名

秦皇岛网站制作报价,网站建设优化网站排名,桃江县建设局网站,photoshop怎么做网站今天是Python专题第27篇文章#xff0c;我们来聊聊Python当中的命令行参数工具argparse。命令行参数工具是我们非常常用的工具#xff0c;比如当我们做实验希望调节参数的时候#xff0c;如果参数都是通过硬编码写在代码当中的话#xff0c;我们每次修改参数都需要修改对应…今天是Python专题第27篇文章我们来聊聊Python当中的命令行参数工具argparse。命令行参数工具是我们非常常用的工具比如当我们做实验希望调节参数的时候如果参数都是通过硬编码写在代码当中的话我们每次修改参数都需要修改对应的代码和逻辑显然这不太方便。比较好的办法就是把必要的参数设置成通过命令行传入的形式这样我们只需要在运行的时候修改参数就可以了。sys.argv解析命令行传入参数最简单的办法就是通过sys.argvsys.argv可以获取到我们通过命令行传入的参数。import sysprint(sys.argv)用法很简单只需要调用sys.argv即可。argv是一个数组如果参数有多个我们可以通过下标进行访问。但是有一点需要注意argv当中存储的结果是从Python调用开始的。我们来看一个例子我们随意传入一些参数print sys.argv之后是这样的。python test.py -a -c -d222[test.py, -a, -c, -d222]也就是说我们python运行test.py这个文件名也当做参数之一所以我们要获取自定义参数的话需要从argv[1]开始。sys.argv的好处是方便我们只需要访问它就可以拿到传入的参数了。但是缺点也很明显就是功能太少了。假如我们是看其他大神的代码我们想要知道运行的时候需要传入什么参数以及每个参数代表什么含义就做不到了。为了解决这个问题我们需要使用封装更多功能的工具也是本篇文章的核心——argparse。基本用法argparse是Python当中的一个库我们需要先import一下这个库我没记错应该是Python自带的也不需要安装我们直接就可以使用。在我们使用之前我们需要先初始化这个parse也就是一个参数解析器。# 这里ArgumentParser可以传入一个字符串表示用途parser  argparse.ArgumentParser()parser.parse_args()这个时候其实就已经有了一个解析器了我们在运行的时候可以传入参数-h表示help也就是查看目前解析器当中定义的参数。由于我们现在什么也没有所以能显示出来的就只有help。必选参数首先我们来介绍必选参数它的定义和函数当中的必填参数是一样的也就是说我们运行程序必须要的参数。如果不传那么程序不应该执行会进行报错并提示。定义必选参数的方法非常简单我们只需要通过add_argument传入参数的名称就可以了。import argparseparser  argparse.ArgumentParser(For test the parser)parser.add_argument(test)args  parser.parse_args()print(args.test)这样我们就定义了一个名叫test的参数我们可以通过args.test来访问它。这个时候我们再运行python test.py -h就会发现提示的信息当中多了一行告诉我们必选参数当中有test必选参数直接传入不需要加上前缀。所以我们执行的时候直接python test.py xxx就可以了。可选参数有必选参数当然就有可选参数可选参数由于可选可不选 所以我们在使用的时候需要在参数前加上标识-或者--。比如我们参数名叫做test可以定义成-test或者--test这两种都可以也可以这两种都定义。parser.add_argument(-test, --test)我们运行-h可以发现optional arguments当中多了test和--test。但是这个只print出来了参数名并没有告诉我们这个参数究竟是做什么的像是help参数后面就跟了show this help message and exit这个提示语。如果我们也希望help能够提示我们参数的作用怎么办呢我们可以通过help参数传入我们希望打印出来的提示语这样方便使用者在使用的时候了解参数的情况。比如我们把这行语句改成parser.add_argument(-test, --test, helpjust for help)这样当我们运行的时候就会看到提示语了默认值如果参数很多的时候我们有时候可能不希望每一个都指定一个值而是希望可以在不填的时候有一个默认值。这个想法非常正常想要做到这点也很简单我们可以通过default参数来指定。import argparseparser  argparse.ArgumentParser(For test the parser)parser.add_argument(-test, --test, default1, helpjust for help)args  parser.parse_args()print(args.test)比如这样我们在代码当中把test参数的默认值设置成了1当我们运行的时候如果不填test这个参数的话那么程序就会使用它的默认值也就是1。但有一点默认值的信息并不会print在help当中所以我们需要自己在提示语当中告知使用者默认值是多少。type我们可以定义参数的默认值当然也可以定义它的类型。因为命令行传入的参数默认都是字符串如果我们要进行数学上的计算使用str还需要自己转换这就很不方便。我们可以在传入参数的时候就完成类型的匹配这样如果传入参数的类型不对 那么直接报错不往下运行。想要做到这点也很简单通过type参数就可以实现。parser.add_argument(-test, --test, default1, typeint, helpjust for help)比如当我们定义了一个int型的参数而传入的是类型不匹配的话那么就会引起报错报错信息当中写得很清楚我们得到了一个无效的int的值它是abc。可选值它同样还支持可选值可选值很好理解就是我们希望限定传入参数的范围仅仅在几个值当中。比如说我们希望传入的值不是0就是1或者是在某几个具体的值当中这个时候我们可以通过choices参数来实现这一点。choices参数传入的是一个list也就是我们的限定范围只有在这个范围当中的值才被允许。parser.add_argument(-test, --test, default1, choices[2, 3, 4], typeint, helpjust for help)如果我们运行传入test1那么就会引起报错告诉我们传入的值不在choices范围当中。这是一个挺有意思的例子仔细看会发现我们默认值设置成了1但是可选值当中并没有1。这也是允许的默认值可以不在可选值范围内但是当我们传入1就会触发可选值校验。actionaction是一个很神奇也很有用的操作可以指定参数的处理方式。我们默认的方式是store也就是存储的意思这个我们都能理解。除此之外还有store_true它表示出现则是true否则是false。parser.add_argument(-test, --test, actionstore_true, helpjust for help)当我们把test参数的定义改成这样之后我们来对比一下运行的结果就明白了。除了store_true之外还有store_const也就是说出现就指定为一个固定值。parser.add_argument(-test, --test, actionstore_const, const23, helpjust for help)这样当我们指定-test参数之后它会自动被赋值成23。除了这两个之外另外一个很常用的参数是append可以将多次出现的同一个参数自动存入一个list当中。parser.add_argument(-test, --test, actionappend, typeint, helpjust for help)nargsnargs也是一个非常有用的参数可以对参数进行一些花式操作。nargs的传入参数有以下几种首先是N也就是一个整数。代表可以接收N个参数值这N个值会被存入一个list当中。parser.add_argument(-test, --test, nargs2, typeint, helpjust for help)另外一种传入的参数是或者是*它可以将任意多个值存入一个list当中。parser.add_argument(-test, --test, nargs*, typeint, helpjust for help)总结有了parser之后我们在Python当中处理命令行参数会变得非常简单我们可以做各种各样的定制化操作。除了我们上面介绍的之外还有一些其他的做法相对来说不是非常常用所以就不一一穷尽了感兴趣的同学可以自行了解一下。今天的文章到这里就结束了如果喜欢本文的话请来一波素质三连给我一点支持吧(关注、转发、点赞)。- END -
http://wiki.neutronadmin.com/news/378503/

相关文章:

  • 建设银行官方网站登录入口上海网站建设服务框架
  • 企业建设网站哪家好flash网站推荐
  • 网站设计制作需要多少钱青岛网页设计师
  • 发布网站后不可能存在的文件夹是网站备案号 英文
  • 做企业网站需要注意哪些网站内容管理系统源码
  • 网站开发个人工作室网络服务是干什么的
  • 东莞做企业网站免费单页网站在线制作
  • 做好的网站模板怎么修改做通路富集分析的网站
  • 免费网站推广大北京大型商场一览表
  • 有了网址怎么做网站西安抖音代运营公司
  • 网站建设项目验收付款软件开发和网站建设哪个好
  • 石岩附近做网站公司杭州it培训
  • 西安便宜做网站关于asp网站模板下载
  • 网站推广妙招寻找移动网站建设
  • 网上购物网站建设论文6微信如何引流推广精准加人
  • 苏州和城乡建设局网站首页网站制作多久
  • 自考免费自学网站软件开发工具包可以卸载吗
  • 创建网站需要什么平台一站式营销平台
  • 怎么网站搜索排名优化网站建设方案书doc模板
  • 跨境电商网站建设开发iis7搭建网站教程
  • 现在做网站开发吗一个网站是怎么建立的
  • 网站规划 时间哪些网站可以seo
  • 濮阳房产网站建设wordpress新闻动态不显示作者
  • 住房和城乡建设部网站监理合同聊城市东昌府区建设路小学网站
  • 深圳做网站(龙华信科)网络营销管理
  • 手机网站模板网opencart做外贸网站怎样
  • 网站做推广团队wordpress上传不了图片
  • 昆明著名网站建设网站开发实验报告模版
  • wordpress 网站导航企业融资计划书范本
  • 深圳网站设计联系电话怎么注册个人工作室