【问题标题】:Execution flow in PythonPython中的执行流程
【发布时间】:2016-11-09 21:00:31
【问题描述】:

我正在使用与 Linux 终端交互的 Python3.4 Luigi 管道,我需要接受用户输入。我的代码如下所示:

test = input("Enter data: ")
logger.info(test)

Class One{...}
Class Two{...}
Class Three{...}

我希望终端在 "Enter data: " 之后不会打印任何内容,但它会不断使用调试信息更新终端(即要求调度程序工作,等待 Class One 完成),因此用户无法输入输入。有什么方法可以防止终端在接受用户输入之前打印?

谢谢

更新

似乎即使用户没有输入,类 One 也会被执行。我不知道为什么会这样,.,,

【问题讨论】:

  • 如果你在类中有一些“类元素”,而不是在它的方法中,那么它将在文件加载时开始执行。所以展示你的班级。
  • 听起来 Luigi 正在将 Python 的输入重定向到管道,所以它没有连接到终端。

标签: python luigi


【解决方案1】:

我认为最好为您的脚本和任务分别设置文件并以这种方式触发主要任务。这个想法是读取用户输入,如果它不为空,则运行所需的任务。

import luigi
from my_tasks import MyTask

if __name__ == "__main__":
    test = input("Enter data: ")
    if test:
        luigi.build([MyTask1(123, "foobar")], local_scheduler=False)

至少还有另一种以编程方式实例化和运行 Luigi 任务的方法,您可以在 this answer 中看到。

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多