python - PyInvoke:如何处理任务的标准输入?

标签 python fabric pyinvoke

以下代码纯粹用于说明目的。我想写一个这样的任务:

>echo '11da33' | inv remove-number
da

如何在调用任务中使用 stdin?我检查了文档但没有发现任何内容

最佳答案

在调用中接受用户输入非常简单。这里我使用了标准输入,但如果你想要高级功能,你也可以使用点击提示,但方法是相同的。

@invoke.task()
def greet(ctx):
    print("Whom would you like to greet? ")
    if name := input():
        print(f"Hello {name}!")
    else:
        print("Hello World!")

当您运行任务时。

$ inv greet                
Whom would you like to greet? 
universe # user input
Hello universe! # output

您也可以通过管道输入。

$ echo universe | inv greet
Whom would you like to greet? 
Hello universe!

关于python - PyInvoke:如何处理任务的标准输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70185710/

相关文章:

python - 来自其他 python 脚本的 PyInvoke 执行任务

python - “无效参数”错误打开文件(而不是读取文件)

python - org.apache.spark.SparkException : Unseen label with TrainValidationSplit

用于为工资期创建 CSV 的 Python 脚本

django + virtualenv = 原子升级 - 有可能吗?

python - 获取使用 fabric run 命令启动的进程的 PID

django - Fabric 和 virtualenv 在 Ubuntu 上工作,但在 Solaris 上不工作

python - 我如何让 pyinvoke 使用 python3?

python - 在 Python 中反转数字的(二进制)数字的巧妙方法?