Я создаю приложение командной строки на Python, используя библиотеку Click, которая принимает имя в качестве входных данных, но если имя не указано. введено, оно возвращает значение по умолчанию.
Вот код, который у меня есть до сих пор.
привет.py
import click
@click.version_option(1.0)
@click.command()
@click.argument('string', default='World')
@click.option('-r', '--repeat', default=1, help='How many times should be greeted.')
def cli(string,repeat):
'''This string greets you.'''
for i in xrange(repeat):
click.echo('Hello %s!' % string)
if __name__ == '__main__':
cli()
Когда я запускаю его.
$ привет
Hello World!
$ привет Боб
Hello Bob!
$ привет Боб -r 3
Hello Bob!
Hello Bob!
Hello Bob!
Это именно то, что я хочу.
Теперь я хотел бы иметь возможность принимать ввод со стандартного ввода, как в следующих примерах.
$ эхо Джон | привет
Hello John!
$ эхо Джон | привет -r 3
Hello John!
Hello John!
Hello John!