有没有办法将命令行解析到python-click中,然后单击手动执行回到我的代码?
当我在下面运行代码时,处理域()调用下方都没有处理任何内容。 Gibberish甚至没有异常。似乎要使用单击,您必须执行 everyathy 单击方式,我能说的最好是将所有代码移动到装饰器函数中?
是否有一种方法可以将命令行解析以单击,然后单击手动执行回到我的代码?
import click
my_cfg = { 'domains': [], 'def_domains': ['stackoverflow.com', 'google.com'] }
@click.command()
@click.option('--domain', '-d', multiple=True, type=str, nargs=1, default=my_cfg['def_domains'])
def domains(domain):
click.echo('\n'.join(domain))
my_cfg['domains'].append(domain)
domains()
fgddtruhygtuit5r # No exception thrown!! Once domains() is called my code never runs
### Bunch of code here that I cannot easily move into domains() ###
从Pycharm内部的Windows运行Python 3.10.x。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
简短版本在standalone_mode = false时传递时,调用单击命令时。
在使用python'click'库的解析器作为简单函数。
以下是一个示例:
for_testing.py
for_testing.py -d duckduckgo.com
for_testing.py -d duckduckgo.com -d google.com -d google.com -d bing.com
编辑:您需要处理异常,甚至退出 - version,for -version, -h和-help自己。这是我在一起的一些代码:
Short version is pass in standalone_mode=False when calling your click commands.
Found the answer in Program stops when running @click.command. And I learned about it in Using the Python 'click' library's parser as a simple function.
Here's an example:
for_testing.py
for_testing.py -d duckduckgo.com
for_testing.py -d duckduckgo.com -d google.com -d bing.com
Edit: You'll need to handle exceptions and even exiting for --version, -h, and -help yourself. Here's some code I kludged together: