首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docopt布尔arg python

docopt布尔arg python
EN

Stack Overflow用户
提问于 2016-12-07 16:28:34
回答 2查看 2.2K关注 0票数 4

我在doctopt脚本中使用了下面的args

代码语言:javascript
复制
Usage:
GaussianMixture.py --snpList=File --callingRAC=File

Options:
-h --help     Show help.
snpList     list snp txt
callingRAC      results snp

我想添加一个对我的脚本有条件结果的参数:更正我的数据或者不更正我的数据。类似于:

代码语言:javascript
复制
Usage:
GaussianMixture.py --snpList=File --callingRAC=File  correction(--0 | --1)

Options:
-h --help     Show help.
snpList     list snp txt
callingRAC      results snp
correction      0 : without correction | 1 : with correction 

我想在我的脚本中添加一些函数中的if

代码语言:javascript
复制
def func1():
  if args[correction] == 0:
      datas = non_corrected_datas
  if args[correction] == 1:
      datas = corrected_datas

但我不知道如何在用法中写它,我的脚本也不知道。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-07 17:10:30

编辑:我最初的答案没有考虑OP的要求-修正是强制性的。语法在我最初的回答中是不正确的。下面是一个经过测试的工作示例:

代码语言:javascript
复制
#!/usr/bin/env python
"""Usage:
    GaussianMixture.py --snpList=File --callingRAC=File --correction=<BOOL>

Options:
    -h, --help          Show this message and exit.
    -V, --version       Show the version and exit
    --snpList         list snp txt
    --callingRAC      results snp
    --correction=BOOL Perform correction?  True or False.  [default: True]

"""

__version__ = '0.0.1'

from docopt import docopt

def main(args):
    args = docopt(__doc__, version=__version__)
    print(args)

    if args['--correction'] == 'True':
        print("True")
    else:
        print("False")

if __name__ == '__main__':
    args = docopt(__doc__, version=__version__)
    main(args)

如果这对你有用,请告诉我。

票数 4
EN

Stack Overflow用户

发布于 2020-06-15 07:53:20

并非所有选项都必须在docopt中有参数。换句话说,您可以使用标志参数代替。这是从用户获取布尔值的最直接的方法。尽管如此,你可以简单地做以下几件事。

代码语言:javascript
复制
"""
Usage:
  GaussianMixture.py (--correction | --no-correction)

Options:
  --correction      With correction
  --no-correction   Without correction
  -h --help     Show help.
"""
import docopt


if __name__ == '__main__':
    args = docopt.docopt(__doc__)
    print(args)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41022532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档