Python argparse:-o 和 --option 之间的区别

2024-01-07

我正在尝试理解argparse包,我真的找不到这个非常简单的问题的答案:

  • 有什么区别-a and --argument添加参数时?

有时,我发现两者合二为一add_argument()像这儿:

parser.add_argument(
        "-f", "--file",
        help="file path"
        )

如果两者都指定,则 argparse 将以长格式('argument')而不是短格式('a')存储值。它将推断目的地,因此“--foo-bar”将存储在foo_bar.

您可以将短形式混合在一起并使用单个连字符 (-af)但与某些 *NIX 命令不同,顺序很重要:如果您的参数需要一个值(-f filename)然后论证must作为短格式参数组的最后一个参数出现:

cmd -af my_file   # works
cmd -fa my_file   # does not work

和怪物比较一下tar(1)这使得tar -cfC myfile.tar ./directory并将其正确地排序为逻辑上等同于tar -c -f myfile.tar -C ./directory。此外,某些长格式允许在指定选项时使用“=”tar -cf myfile.tar, 相对tar -c --file=myfile.tar。您不能在缩写形式上使用“=”。

幸运的是,python argparse 并不关心“=”。使用或不使用它,无论是短形式还是长形式。

# All equivalent:
  cmd -af=my_file
  cmd -a -f my_file
  cmd -a -fmy_file
  cmd -afmy_file
  cmd --file my_file -a
  cmd --file=my_file -a

有关系吗?正如另一个答案所表明的那样,长形式有助于提高可读性。简短的形式可以让您的高级用户更满意。

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

Python argparse:-o 和 --option 之间的区别 的相关文章

随机推荐

  • SQL - 将单列划分为多列

    我有以下 SQL 问题 如何使用 SELECT 命令将列 内部文本 分成两个带有分割文本的单独列 我需要使用空格字符分隔文本数据 我知道最好举个例子来让它变得容易 所以 SELECT COLUMN A FROM TABLE1 output
  • 清理AjaxToolkit AsyncFileUpload控件

    我在我的 aspx net 页面中使用 AsyncFileUpload 控件 该控件在更新面板内运行 我可以成功地将文件异步上传到服务器 我的问题是 每个文件上传后我无法刷新整个页面 所以我需要弄清楚如何清除上次上传的文件 这样当用户选择新
  • 了解多处理:Python 中的共享内存管理、锁和队列

    多重处理 https docs python org 2 library multiprocessing html module multiprocessingpython中的一个强大的工具 我想更深入地了解它 我想知道什么时候使用regu
  • 奇怪的 JavaScript 性能依赖于变量范围

    在测试一个 JavaScript 项目的性能时 我注意到一种非常奇怪的行为 JavaScript 成员访问性能似乎很大程度上受到它们所在范围的影响 我编写了一些性能测试 结果因多个数量级 我在 Windows 10 64 位上使用以下浏览器
  • 全局点击事件处理程序(WithEvents)

    我正在尝试创建一个类模块 当有人单击我表单中的六十个文本框之一时 它将充当全局处理程序 文本框代表一周的时间卡 显示一周 7 天的上班时间 下班时间 午餐开始 结束 持续时间 每日总小时数等信息 当有人单击一天中的任何一个框时 所有框都会解
  • Angular2 如何在 HTML5 模板中显示 localStorage 值?

    我在 localStorage 中存储 2 个密钥 我想在我的模板中显示其中之一 我无法访问这些值 我什至创建了一个接口来存储 localStorage 中的 currentUser 键的值 应该如何实施呢 这是当前的代码 Service
  • stl::list 中的 C++ 接口

    课程界面 class ILesson public virtual void PrintLessonName 0 virtual ILesson STL容器 typedef list
  • MemoryCache.Set 返回删除的缓存项

    我正在使用 NET 4 0MemoryCache http msdn microsoft com en us library dd780634 28v vs 100 29 aspx类 并且我想以线程安全的方式添加或替换缓存中的现有项目 但我
  • golang 在 ubuntu 14.04 LTS 中获取大量读取 tcp ip:port i/o 超时

    我编写了一个 golang 程序 过去几个月在 ubuntu 12 04 LTS 中运行良好 直到我将其升级到 14 04 LTS 我的程序专注于发送 HTTP 请求 每秒发送大约 2 10 个 HTTP 请求 HTTP 请求地址各不相同
  • python 如何关闭已被 gc'ed 的文件?

    我一直认为如果在未关闭的情况下打开文件就会泄漏 但我刚刚验证了如果输入以下代码行 文件将关闭 gt gt gt f open somefile txt gt gt gt del f 纯粹出于好奇 这是如何工作的 我注意到该文件不包含 del
  • jQuery 调整窗口大小

    我有以下 JQuery 代码 document ready function var containerHeight window height if containerHeight lt 818 footer css position s
  • Django:如何更改内联表单集中的字段小部件

    我是 Django 新手 我想我在文档中遗漏了这一点 问题是在内联表单集中我没有声明表单 只是传递两个模型来构造它 我想知道如何使用内联表单集更改单个字段的小部件 从 Django 1 6 开始 https docs djangoproje
  • 更改内容 infowindow 地图 v3

    我试图使更改 DIV 内显示的内容 即信息窗口的内容 成为可能 我已经能够将信息窗口内的内容从 Hello 更改为 YO 问题是当我关闭信息窗口并重新打开它时 更新的内容会恢复为原始内容 下面是我的代码 google maps event
  • Javascript / jQuery:如何动态添加行到表体(使用数组)

    我是 Javascript 新手 希望有人能帮助我解决这个问题 我有一个 HTML 页面 上面有一个表格 我想使用JS动态添加特定内容的行到表体 到目前为止 我有下面的代码 这里被缩短了 实际上有更多的行和列等 这导致了我以下问题 当我运行
  • Django日期查询从最新到最旧

    我正在从头开始构建我的第一个 Django 程序 并且在尝试将项目从最新到最旧打印到屏幕上时遇到了麻烦 我的模型在数据库中填充了一个自动日期时间字段 如下所示 Model from django db import models from
  • 使用 bash 连接两个文件的最简单方法,它们的两个键都出现在结果中

    我有 2 个输入文件 file1 A 0 01 B 0 09 D 0 05 F 0 08 file2 A 0 03 C 0 01 D 0 04 E 0 09 我想要的输出是 A 0 01 0 03 B 0 09 NULL C NULL 0
  • 使用 Android 资源字符串时出现错误的是/否文本

    我正在 Android 的 Mono 中构建一个对话框 如下所示 AlertDialog Builder builder new AlertDialog Builder Context builder SetTitle Context Ge
  • 使用curl登录https站点

    我正在尝试登录一个网站 该网站使用自动提交和随机密钥来提交表单 我尝试了几种方法但无法通过 所以这是我的代码 任何答案将不胜感激 提前致谢 我的假帐户通行证和用户名也可以在代码中提供给那些想要尝试的人 我的网址有点长 include sim
  • 是什么使得 SQL 语句可控制?

    根据定义 至少从我所看到的 可优化意味着查询能够让查询引擎优化查询使用的执行计划 我尝试查找答案 但似乎没有太多关于该主题的内容 所以问题是 什么使 SQL 查询可控制 任何文档将不胜感激 以供参考 Sargable http en wik
  • Python argparse:-o 和 --option 之间的区别

    我正在尝试理解argparse包 我真的找不到这个非常简单的问题的答案 有什么区别 a and argument添加参数时 有时 我发现两者合二为一add argument 像这儿 parser add argument f file he