如何使用 argparse 为参数创建可选值?

2024-03-05

我正在创建一个 python 脚本,我想要一个参数来控制作为输出获得的搜索结果数量。我目前已命名该参数--head。这是我希望它具有的功能:

  1. When --head未在命令行中传递我希望它默认为一个值。在这种情况下,一个相当大的,比如 80

  2. When --head传递时没有任何值,我希望它默认为另一个值。在本例中,有些内容是有限的,例如 10

  3. When --head传递了一个值,我希望它存储传递的值。

这是描述问题的一些代码:

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-h',
                        '--head',
                        dest='size',
                        const=80,
                        default=10,
                        action="I don't know",
                        help='Only print the head of the output')
>>> # OFC, that last line will fail because the action is uknown,
... # but here is how I'd like it to work
... parser.parse_args(''.split())
Namespace(size=80)
>>> parser.parse_args('--head'.split())
Namespace(size=10)
>>> parser.parse_args('--head 15'.split())
Namespace(size=15)

我知道我可能可以为此编写一个自定义操作,但我首先想看看是否有任何默认行为可以执行此操作。


在阅读了更多文档后,我找到了我需要的东西:nargs='?'。 这与使用store行动,并且完全按照我的意愿行事。

这是一个例子:

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--head',
                        dest='size',
                        const=10,
                        default=80,
                        action='store',
                        nargs='?',
                        type=int,
                        help='Only print the head of the output')
>>> parser.parse_args(''.split())
... Namespace(size=80)
>>> parser.parse_args('--head'.split())
... Namespace(size=10)
>>> parser.parse_args('--head 15'.split())
... Namespace(size=15)

Source: http://docs.python.org/3/library/argparse.html#nargs http://docs.python.org/3/library/argparse.html#nargs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 argparse 为参数创建可选值? 的相关文章

  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • ipython/ pylab/ matplotlib安装和初始化错误

    我在 OS X El Captain 上安装了 matplotlib anaconda ipython 然而 即使在尝试以所有可能的方式设置环境变量之后 我仍无法启动 ipython shell pylab 版本 这是错误 ImportEr
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。时间

    张量流版本 2 3 1 numpy 版本 1 20 在代码下面 define model model Sequential model add LSTM 50 activation relu input shape n steps n fe

随机推荐

  • 如何检查 UITextField 何时发生变化?

    我试图检查文本字段何时发生变化 也相当于用于 textView 的函数 textViewDidChange到目前为止我已经这样做了 func textFieldDidBeginEditing textField UITextField if
  • 在 React Native 中生成发布 apk

    我通过本机反应创建了一个简单的应用程序 现在完成部署后 我想制作发布 apk 以便根据它的官方网站 https facebook github io react native docs signed apk android我已经创建了密钥
  • Cypress.io 测试中未发生拖放

    我试图拖动一个元素 然后将其放入放置区域 但测试并未在 Cypress io 中执行拖放操作 如果有人可以就这里的潜在问题提出建议 那将非常有帮助 没有抛出错误 但是这里仍然没有发生拖放 describe Verify the drag a
  • Ruby on Rails 4 javascript 未执行

    我有一个习惯js文件输入app assets javascripts 这是js文件 app assets javascripts contacts js document ready function I ve already tried
  • 如何将所有日志从hibernate和spring重定向到log4j2?

    我使用下一个技术堆栈构建我的 superWebApp persistence provider Hibernate 4 x webMvc and beans container Spring 4 x web containter Tomca
  • @ResourceMapping 接受来自 Ajax 请求的 JSON

    我正在搜索如何解释 Spring Portlet MVC 中 ResourceMapping 中的 JSON 参数 当我添加 RequestBody时 我收到消息 不支持 RequestBody 真的卡在这个上了 我有这个 查看侧面
  • 为什么在回调中调用 ViewModel 时会发生重组?

    我完全混淆了撰写概念 我有一个代码 Composable fun HomeScreen viewModel HomeViewModel getViewModel Scaffold val isTimeEnable by viewModel
  • MERN Stack - Express 和 React 在同一端口上?

    我正在开发一个使用 MERN MongoDB Express React Node 堆栈的项目 在将数据从 React 组件内的表单发布到 Node js 中定义的 API 端点时遇到问题 当我提交表单时 浏览器仅显示 无法发布 错误 我非
  • Hibernate 说该表不存在,但它确实存在

    我遇到 Hibernate 抛出以下错误的问题 com mysql jdbc exceptions jdbc4 MySQLSyntaxErrorException Table Library book doesn t exist 我的依赖设
  • 如何将 iOS 应用程序限制为仅适用于 4 英寸屏幕设备?

    Xcode 中是否有一个设置可以让我声明我的应用程序仅支持 4 英寸屏幕设备 iPhone 5 和最新的 iPod Touch Nope 由于 iOS 7 支持 3 5 英寸屏幕的设备 因此您不能使用 only support iOS x
  • PyTorch 无法检测 CUDA

    我在 PyTorch 上运行 CNN torch cuda is available 函数返回 false 并且未检测到 GPU 不过 我可以使用 GPU 运行 Keras 模型 这是我的系统信息 操作系统 Ubuntu 18 04 3 P
  • 为什么双向 ManyToOne 会导致 Hibernate 中的循环依赖?

    我的项目中有实体 基于Spring Boot Hibernate Entity Table name user account public class UserAccount Id GeneratedValue strategy Gene
  • Angularjs 在控制器之间共享方法

    我有一个应用程序 它在一个页面 主页 上显示新闻提要 在另一个页面上仅显示用户的提要 用户个人资料页面 两个页面的外观和行为方式相同 内容的变化是由于调用了不同的URL 在AngularJS中如何解决这个问题 我有一个家庭控制器 它具有用于
  • 为什么使用 redux 来实现不可变状态

    我正在学习 redux 并且正在努力理解为什么状态必须是不可变的 您能否为我提供一个示例 最好是代码 其中打破不可变合约会导致不那么明显的副作用 Redux 最初是为了演示 时间旅行调试 的理念而发明的 能够在分派操作的历史记录中来回查看
  • Eclipse:如何刷新整个工作区? F5 不行

    我有一个包含一堆 java 项目的工作区 如果我去File gt Refresh 它并没有真正刷新任何内容 可能是当前选择的项目 如何让 eclipse 刷新all的项目 It will indeed only refresh the cu
  • Java8的Collection.parallelStream如何工作?

    Collection类带有一个新方法 parallelStream 在 Java SDK 8 中 显然 这种新方法提供了一种并行消费集合的机制 但是 我想知道Java是如何实现这种并行性的 其根本机制是什么 它只是多线程执行吗 或者 for
  • 为什么 WCF 有时会在生成的代理类型末尾添加“Field”?

    基本上 我有一个带有成员 X 和 Y 的服务器端类型 Foo 每当我使用 Visual Studio 的 添加服务器引用 时 我都会看到 WSDL 和生成的代理都将单词 Field 附加到所有成员并更改第一个字母的大小写 IE 中 X 和
  • 多处理 - 使用管理器命名空间来节省内存

    我有几个进程 每个进程都完成需要单个大 numpy 数组的任务 这只是被读取 线程正在搜索适当的值 如果每个进程都加载数据 我会收到内存错误 因此 我试图通过使用管理器在进程之间共享相同的数组来最小化内存使用量 但是我仍然收到内存错误 我可
  • 在 Python 中替换 XML 元素

    我试图用一组新的坐标替换 bbox 内部的元素 我的代码 import element tree import xml etree ElementTree as ET import xml file tree ET parse C high
  • 如何使用 argparse 为参数创建可选值?

    我正在创建一个 python 脚本 我想要一个参数来控制作为输出获得的搜索结果数量 我目前已命名该参数 head 这是我希望它具有的功能 When head未在命令行中传递我希望它默认为一个值 在这种情况下 一个相当大的 比如 80 Whe