为了账号安全,请及时绑定邮箱和手机立即绑定

使用python的argparse用逗号处理选项

使用python的argparse用逗号处理选项

沧海一幻觉 2021-04-01 22:14:27
我正在写一个Python脚本,充当GCC的包装器。GCC所采用的大多数选项都可以通过argparse直接处理,但是我在“ -Wl,option”选项中苦苦挣扎。我希望它在逗号后存储所有内容,因此我尝试了以下操作:parser = argparse.ArgumentParser()parser.add_argument("-Wl,", help="Option to pass to linker.")known, unknown = parser.parse_known_args()print(known)print(unknown)但是,如果我按以下方式运行脚本:python foo.py -Wl,foo我得到以下输出:Namespace(E=False, S=False, Wl,=None, c=False, optimization=None, shared=False, target=None)['-Wl,foo']这表明它无法识别-Wl选项。我可以将add_argument行更改为:parser.add_argument("-W", help="Option to pass to linker.")这可以在W选项中存储“ l,foo”,但是GCC使用-W作为警告标志,而我想将那些标志与-Wl选项分开。我可以遍历未知的args列表并以这种方式处理它们,但是我希望有一个更优雅的解决方案。有小费吗?
查看完整描述

2 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

在将它们传递给argparse之前,您可以按照简单.replace(',',', ').replace(',',',=')所有arg的方式进行操作。我认为其中之一应该可以解决问题。


查看完整回答
反对 回复 2021-04-06
  • 2 回答
  • 0 关注
  • 292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信