2

Linux ターミナルと対話する Python3.4 Luigi パイプラインを使用しており、ユーザー入力を取得する必要があります。以下のようなコードがあります。

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

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

の後にターミナルが何も出力しないことを期待します"Enter data: "が、デバッグ情報でターミナルを更新し続けるため (つまり、スケジューラに作業を依頼し、クラス 1 が終了するのを保留中)、ユーザーは入力を入力できません。ユーザー入力を受け取るまで端末が印刷しないようにする方法はありますか?

ありがとう

アップデート

ユーザーが入力を入力しなくても、クラス One が実行されるようです。なぜこれが起こっているのかわかりません..

4

1 に答える 1

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 Task をインスタンス化して実行する方法が少なくとも 1 つあります。これは、この回答で確認できます。

于 2016-11-10T14:32:10.750 に答える