如何在Luigi中获取所需的先前任务输出的文件名

问题描述

在我读过的luigi的样本中,当您想使用以前的必需任务的输出文件时,可以执行以下操作

@requires(TaskB)
class TaskA(luigi.Task):
    def run(self):
        with self.input().open('r') as input:
            input.read()...something else etc

因此,您在调用input

时会自动从先前的必需taskB打开输出文件

但是我想做些不同的事情。我需要该文件完整文件。我不需要打开它,只需打开文件名即可将其作为参数传递给某些函数

如何获取一个任务输出文件名?

解决方法

我认为在您的情况下,self.input()LocalTarget

您可以尝试self.input().path来获取路径。

编辑:

如果TaskB定义了多个输出(例如列表),则必须执行以下操作:

self.input()[0].path

或者您可以遍历它。 话虽如此,但不是多个输出recommended

如果TaskA定义了多个输入,则访问输入的方式为explained here