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

How to get the filename of a required previous task output in Luigi

在我读过的 Luigi 示例中,当你想使用之前所需任务的输出文件时,你可以这样做

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

因此,当您调用 input

时,您将自动打开先前所需任务 B 的输出文件

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

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

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

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

编辑:

如果 TaskB 定义了多个输出,例如一个列表,您将不得不这样做:

self.input()[0].path

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

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