2015-07-17 8 views
2

Я просто попытался запустить питон Luigi example из документации:писать вывод в файлы из питона Luigi

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 

Я был под впечатлением, что это создаст файл в каталоге, в котором я его запускаю, но это не так?

Я что-то не так?

+0

Есть ли ошибки в вашем терминале? – felipeclopes

ответ

6

Определение TaskA не имеет никакого смысла. Вероятно, это должно быть ExternalTask.

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

Это означает, что вы должны записать содержимое файла xyz

echo hi >> xyz 
echo hello >> xyz 

Затем запустите рабочий Luigi.

 Смежные вопросы

  • Нет связанных вопросов^_^