将输出写入python luigi

时间:2015-07-17 03:18:20

标签: python luigi

我只是试图从文档中运行python luigi example

class TaskA(luigi.Task):
    def output(self):
        return luigi.LocalTarget('xyz')

class FlipLinesBackwards(luigi.Task):
    def requires(self):
        return TaskA()

    def output(self):
        return luigi.LocalTarget('abc')

    def run(self):
        f = self.input().open('r') # this will return a file stream that reads from "xyz"
        g = self.output().open('w')
        for line in f:
           g.write('%s\n', ''.join(reversed(line.strip().split())))
        g.close() # needed because files are atomic

我使用命令行运行它:

python Luigi_Test.py FlipLinesBackwards --local-scheduler

我的印象是,这会在我运行它的目录中创建一个文件,但它没有?

我做错了吗?

1 个答案:

答案 0 :(得分:7)

TaskA的定义没有任何意义。它可能是ExternalTask

class TaskA(luigi.ExternalTask):
    def output(self):
        return luigi.LocalTarget('xyz')

这意味着您必须编写文件xyz

的内容
echo hi >> xyz
echo hello >> xyz

然后运行luigi工作流程。