我需要创建一个"界面"我的脚本(由crontab运行):
e.g。 (如下所示)
python feedAnimals.py --help
...... Choices:
dog
cat
fish
python feedAnimals.py --pets dog,cat,fish
无论如何都要使用type="choices"
执行此操作?
或者我可以使用type="string"
吗?我试图在" help"下的选项之间插入\n
。选项,但这些似乎在运行时被忽略。
必须兼容python 2.4 :(
答案 0 :(得分:1)
尝试查看argparse的文档,应该做你需要的 - 并且默认内置帮助(-h, - help)
答案 1 :(得分:1)
这是如何更改usage
值的示例。试试吧:
from optparse import OptionParser
string = "Choices:\n\tdog\n\tcat\n\tfish"
parser = OptionParser(usage=string)
(options,args) = parser.parse_args()
您还可以将string
更改为此样式:
string = """
Choices:
dog
cat
fish
"""
然后测试一下:
$python code.py --help
In会告诉你这样的结果:
Usage:
Choices:
dog
cat
fish
Options:
-h, --help show this help message and exit
答案 2 :(得分:1)
看一下这个相关的问题,第一个是好的"类型='选择'"例如,第二个有多个值:
Set a default choice for optionparser when the option is given
Processing multiple values for one single option using getopt/optparse?
你可以使用这样的东西或者手工处理参数":
from optparse import OptionParser
def get_args():
usage = "Usage: %prog [options]"
parser = OptionParser()
parser.add_option("--pet",
type = "choice",
action = 'append',
choices = ["dog", "cat", "fish"],
default = [],
dest = pets,
help = "Available pets: [dog, cat, fish]"
)
(options, args) = parser.parse_args()
print options, args
return (options, args)
(opt, args) = get_args()
print opt.pets
然后,运行:
python test.py --pet cat --pet dog --pet fish