首先,我知道自2.7版以来不推荐使用optparse,但我只在我工作的机器上提供了Python 2.3。
问题是如何知道在命令行中给出选项的顺序,例如:
python example.py -f foo -b bar
将首先执行选项f,然后执行选项b和
python example.py -b bar -f foo
会做相反的事情。
我在阅读optargs
文档后提出的唯一解决方案是使用callback
操作来存储选项和检测相对于其他选项的位置,因为options
对象似乎没有遵循任何特定的顺序。
你知道另一个(也许是更好的)解决这个问题的方法吗?
答案 0 :(得分:4)
根据惯例,选择标志会根据顺序触发不同的行为。但如果您真的想检查订单,可以查看sys.argv
#assuming both -f and -b are given in cmdline and you need to check for order
index_f = sys.argv.find("-f")
index_b = sys.argv.find("-b")
if index_f < index_b:
# do something if -f is before -b