首先,我知道 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
对象似乎不遵循任何特定顺序。
您知道这个问题的另一种(也许更好)解决方案吗?
最佳答案
根据顺序触发不同行为的选项标志是违反惯例的。但如果你真的想检查订单,你可以查看 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
关于python - Python optparse 中的有序选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4994634/