【问题标题】:How to get the filename of a required previous task output in Luigi如何在 Luigi 中获取所需先前任务输出的文件名
【发布时间】:2020-09-23 09:40:25
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: python pipeline luigi


    【解决方案1】:

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

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

    编辑:

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

    self.input()[0].path
    

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

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

    【讨论】:

    • 谢谢!听说有时候之前的任务output可以给出一个文件列表(而不是只有一个)。有这种可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多