我试图找到最 Pythonic 的方式来获取包含命令行选项的字符串:
"-t 500 -x -c 3 -d"
并把它变成字典
{"-t":"500", "-x":True, "-c":"3", "-d": True}
更新:字符串还应该能够包含 --long 选项,以及中间带有破折号的单词:
"-t 500 -x -c 3 -d --long-option 456 -testing weird-behaviour"
在建议我研究 OptionParse 模块之前,请记住我不知道有效选项是什么或类似的东西,我只是试图将字符串放入字典中,以允许根据不同的选项字典对其进行修改。
我正在考虑的方法是使用 split() 将项目放入列表中,然后遍历列表并查找以破折号“-”开头的项目并将它们用作键,然后以某种方式进入下一个项目值的列表。我遇到的问题是没有值的选项。我想过做类似的事情:
for i in range(0, len(opt_list)):
if opt_list[i][0] == "-":
if len(opt_list) > i+1 and not opt_list[i+1][0] == "-":
opt_dict[opt_list[i]] = opt_list[i+1]
else:
opt_dict[opt_list[i]] = True
但是当我这样做时,似乎我是在用 C 而不是 Python 编程......