2

首先,我知道 optparse 自 2.7 版以来已被弃用,但我正在工作的机器上只有 Python 2.3 可用。

问题是如何知道在命令行中给出选项的顺序,例如:

python example.py -f foo -b bar

将首先执行选项 f 然后执行选项 b 和

python example.py -b bar -f foo

会适得其反。

我在阅读文档后想出的唯一解决方案optargs是使用callback操作来存储选项检测相对于其他选项的位置,因为options对象似乎没有遵循任何特定的顺序。

你知道这个问题的另一个(也许更好的)解决方案吗?

4

1 回答 1

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
于 2011-02-14T16:51:53.577 回答