关于click的使用问题,求帮助!!!

如题,今天写脚本的时候遇到的一个小问题。 我想实现的功能是,一个模块里有两个功能,打个比方模块名称为hello.py,下面在终端输入的语句打印出hello,加入 --daily 的后缀可以打印出ok。

python hello.py

python hello.py --daily

现在我的代码是这样

输入python test_command.py 没有任何输出
输入 python test_command.py --test 时,只打印OK 不会把hello也打印出来。

我在做一个数据监督的脚本,想实现的功能就是python 模块名,这个功能拿到所有的数据。
然后模块里再做一个功能,在终端里输入 python 模块名 --daily 可以得到每一天的数据。。但是写好之后发现好像click不是这样工作的。。只好分成两个模块写了,有没有解决的办法呢?

纯代码建议使用代码块而非图片上传。 具体参考论坛说明

另外请设置合理的分类哦。

朋友你表述的清楚有条理一些啊,没看明白你想实现的功能是什么…

代码块用不了才上传图片的,有没有正确使用方法。

简单来说就是我想实现在一个.py文件里面,实现在终端输入 python file.py执行里面的一个功能,然后输入
python file.py --test 的时候执行跟原来另外一个功能,好像两边的功能互不影响这样子。

最基本的,你要了解插入代码块的方式。除了将所有代码缩进四格,更方便的插入代码块方式是使用三个连续的反引号作为开始和结束标记,比如下面的文本:

```
def hello():
    return ‘Hello World’
```

会被渲染为:

def hello():
    return 'Hello World'

如果你懒得看,下面是一个简单的 Markdown 用法示例(最后一个除外),右侧为渲染效果:

具体参考论坛说明

我尝试了缩进4格,不过在右侧的版面,显示一直没有渲染成功。后面试了多次我就不试了,我以后用这个反引号吧!

1 个赞

你这个需求,不去看click的文档是不行的,这里有一个示例:

Example:

@click.group(invoke_without_command=True)
@click.pass_context
def cli(ctx):
    if ctx.invoked_subcommand is None:
        click.echo('I was invoked without subcommand')
    else:
        click.echo('I am about to invoke %s' % ctx.invoked_subcommand)

@cli.command()
def sync():
    click.echo('The subcommand')

And how it works in practice:

$ tool
I was invoked without subcommand
$ tool sync
I am about to invoke sync
The subcommand

上面示例来源:https://click.palletsprojects.com/en/7.x/commands/#group-invocation-without-command

1 个赞