如何在 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
在我读过的 Luigi 示例中,当你想使用之前所需任务的输出文件时,你可以这样做
@requires(TaskB)
class TaskA(luigi.Task):
def run(self):
with self.input().open('r') as input:
input.read()...something else etc
因此,当您调用 input
但是我想做一些不同的事情。我需要该文件的完整文件名。我还不需要打开它,只需要将文件名作为参数传递给某个函数。
如何获取上一个任务的输出文件名?
我认为在你的情况下 self.input()
是 LocalTarget。
您可以尝试self.input().path
获取路径。
编辑:
如果 TaskB
定义了多个输出,例如一个列表,您将不得不这样做:
self.input()[0].path
或者您可以遍历它。 话虽如此,有多个输出并不是 recommended
如果TaskA
定义了多个输入,访问输入的方式是explained here