- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想模拟大多数命令行实用程序的行为,其中可选参数可以放在命令行中的任何位置,包括位置参数之间,例如 mkdir
例子:
mkdir before --mode 077 after
在这种情况下,我们知道
--mode
正好接受 1 个参数,所以
before
和
after
两者都被视为位置参数。可选部分,
--mode 077
, 真的可以放在命令行的任何地方。
argparse
,以下代码不适用于此示例:
# mkdir.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--mode', nargs=1)
parser.add_argument('dirs', nargs='*')
args = parser.parse_args()
运行
./mkdir.py before --mode 077 after
结果是:
mkdir.py: error: unrecognized arguments: after
我怎样才能得到
argparse
接受位置参数之间的可选参数(具有固定的、已知数量的项目)?
最佳答案
从 Python 3.7 开始,好像argparse
现在支持这种 Unix 风格的解析:
Intermixed parsing
ArgumentParser.parse_intermixed_args(args=None, namespace=None)
A number of Unix commands allow the user to intermix optional arguments with positional arguments. The
parse_intermixed_args()
andparse_known_intermixed_args()
methods support this parsing style.
These parsers do not support all the argparse features, and will raise exceptions if unsupported features are used. In particular, subparsers,
argparse.REMAINDER
, and mutually exclusive groups that include both optionals and positionals are not supported.
argparse
文档中的示例似乎没有包含它之后发布了这个常见问题风格的问题,只是偶然发现了一个有点不相关的问题,其中提到了这个“混合"在评论中起作用,我无法再次找到以正确引用它。)
关于python - argparse:位置参数之间的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64070651/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!