所以,我正在尝试从docopt示例git repo运行odd_even_example.py
。
无论我尝试做什么或更改什么,该示例都不会按预期工作。
当我:
python odd_even_example.py 1 2 3 4
我希望看到一个带有我传递的命令行选项或参数的字典。但相反,我只是一遍又一遍地得到__doc__
字符串。
我很困惑,因为我只是从示例存储库中逐字复制并运行文件,它直接坏了。
这是文件的内容:
"""Usage: odd_even_example.py [-h | --help] (ODD EVEN)...
Example, try:
odd_even_example.py 1 2 3 4
Options:
-h, --help
"""
from docopt import docopt
if __name__ == '__main__':
arguments = docopt(__doc__)
print(arguments)
我遇到了同样的问题,我认为问题在于您是否为命令的(ODD EVEN)
部分输入了一些内容。我玩了一下,仍然不明白它到底是如何工作的,但这里有一个像你期望的那样工作的例子。它接受一个或多个数字作为输入,并将结果打印到 stdout。
"""Usage: odd_even_example.py [-h | --help] (NUMBERS)...
Example, try:
odd_even_example.py 1 2 3 4
Options:
-h, --help
"""
from docopt import docopt
def is_even(x):
xIsEven = x%2 == 0
if xIsEven:
return 'EVEN'
else:
return 'ODD'
if __name__ == '__main__':
arguments = docopt(__doc__) # returns a dictionary
print(arguments)
numbers_entered = [int(i) for i in arguments['NUMBERS']]
answers = [is_even(x) for x in numbers_entered]
print(answers)