Luigi LocalTarget returns 通用文件名写入 nc 文件
Luigi LocalTarget returns generic filename writing nc file
我正在学习使用 luigi,我想 运行 我写的这个任务,它打开一个文件,修改它,然后重新保存输出:
class WindDirection(luigi.Task):
uas_filepath = luigi.parameter.Parameter()
def output(self):
return luigi.LocalTarget("testing/wdir.nc")
def run(self):
# My task
with nc.Dataset(self.uas_filepath, 'r') as uas_reader:
wdir = NCdata.wind_dir_from_component(uas_reader)
# Writing out the output
wdir.write(self.output())
任务 运行 没问题,但它将文件保存为 <luigi.local_target.LocalTarget object at 0x7f86ed64ee48>
在与任务相同的目录中,而不是在名称 [=15] 的 testing
文件夹中=](文件内容应该是这样的)。可能是因为命名问题,当我重新 运行 任务时,它会创建文件的新副本,而不是看到此任务的输出文件已经创建。我已经尝试将相对和绝对文件路径作为 LocalTarget
对象的输入。我调用的 .write
方法需要作为文件路径的字符串输入,我想知道这是否会导致问题。
我需要做什么才能使用我给它的名称保存输出文件?
万一这很重要,这是我用来 运行 任务的命令:
PYTHONPATH='.' luigi --module basic_luigi WindDirection --uas-filepath /aboslute/path/to/my/file.nc --local-scheduler
应该是
class WindDirection(luigi.Task):
uas_filepath = luigi.parameter.Parameter()
def output(self):
return luigi.LocalTarget("testing/wdir.nc")
def run(self):
# My task
with nc.Dataset(self.uas_filepath, 'r') as uas_reader:
wdir = NCdata.wind_dir_from_component(uas_reader)
# Writing out the output
wdir.write(self.output().path)
当您调用 self.output()
时,它将 return luigi.LocalTarget("testing/wdir.nc")
而不是输出路径。如果你想要路径,你应该调用 self.output().path
我正在学习使用 luigi,我想 运行 我写的这个任务,它打开一个文件,修改它,然后重新保存输出:
class WindDirection(luigi.Task):
uas_filepath = luigi.parameter.Parameter()
def output(self):
return luigi.LocalTarget("testing/wdir.nc")
def run(self):
# My task
with nc.Dataset(self.uas_filepath, 'r') as uas_reader:
wdir = NCdata.wind_dir_from_component(uas_reader)
# Writing out the output
wdir.write(self.output())
任务 运行 没问题,但它将文件保存为 <luigi.local_target.LocalTarget object at 0x7f86ed64ee48>
在与任务相同的目录中,而不是在名称 [=15] 的 testing
文件夹中=](文件内容应该是这样的)。可能是因为命名问题,当我重新 运行 任务时,它会创建文件的新副本,而不是看到此任务的输出文件已经创建。我已经尝试将相对和绝对文件路径作为 LocalTarget
对象的输入。我调用的 .write
方法需要作为文件路径的字符串输入,我想知道这是否会导致问题。
我需要做什么才能使用我给它的名称保存输出文件?
万一这很重要,这是我用来 运行 任务的命令:
PYTHONPATH='.' luigi --module basic_luigi WindDirection --uas-filepath /aboslute/path/to/my/file.nc --local-scheduler
应该是
class WindDirection(luigi.Task):
uas_filepath = luigi.parameter.Parameter()
def output(self):
return luigi.LocalTarget("testing/wdir.nc")
def run(self):
# My task
with nc.Dataset(self.uas_filepath, 'r') as uas_reader:
wdir = NCdata.wind_dir_from_component(uas_reader)
# Writing out the output
wdir.write(self.output().path)
当您调用 self.output()
时,它将 return luigi.LocalTarget("testing/wdir.nc")
而不是输出路径。如果你想要路径,你应该调用 self.output().path