gpt4 book ai didi

python - 使 optparse 将某些选项视为位置参数

转载 作者:行者123 更新时间:2023-12-01 05:52:56 31 4
gpt4 key购买 nike

我有一个程序,它接受 filename:field[slice] 形式的参数,效果很好。但我也希望支持常见的表示法,即文件名 - 表示标准输入。遗憾的是, -:field[slice] 注册为 optparse 的选项(自然地),因此不会显示为位置参数。所以我想知道是否有办法解决这个问题,例如告诉 optparse 以 -: 开头的选项毕竟应该被视为位置参数。该解决方案应保留参数的顺序,因此 foo:bar -:cow baz:dog 不应成为 foo:bar baz:dog -:cow

最佳答案

在我看来,你最好的选择是预处理 sys.argv插入您检查的特殊 token 而不是 - .

args = [ '<stdin>:'+x[2:] if x.startswith('-:') else x for x in sys.argv[1:] ]
opt_struct = parser.parse_args(args)

在这种情况下,您将解析 <stdin>作为程序中的标准输入而不是 - .

如果 : 则转换会变得更复杂一些它后面的内容是可选的,但这就是它的要点。

十有八九,这些问题可能无法通过 optparse 解决。 ,用argparse来解决确实很棘手/困惑。通过预处理解决问题很简单sys.argv -- 但也许这只是我的经验......

关于python - 使 optparse 将某些选项视为位置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13533768/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com