我正在写一个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的方式进行操作。我认为其中之一应该可以解决问题。
添加回答
举报
0/150
提交
取消