我有一个DAG程序,可以处理并清除某些文件,将它们合并,然后进行其他计算。我想要一种方法来运行整个分析管道,并在有任何更改的情况下重新运行,而不必重新处理每个组件。
我阅读了有关Makefile的内容,并认为这听起来像是完美的解决方案。我也知道它可能已经过时,并且可能存在更好的替代方法,但是据我所知,我通常只会发现一大堆工作流程调度程序工具,这些工具不完全适合此目的(例如,Airflow,Luigi, Nextflow,Dagobah等,等等)
似乎其中许多功能对于计划程序,GUI等来说都是多余的,我并不需要。我只想要一个执行以下操作的文件:
Makefile示例:
.PHONY : dats
dats : isles.dat abyss.dat
isles.dat : books/isles.txt
python countwords.py books/isles.txt isles.dat
abyss.dat : books/abyss.txt
python countwords.py books/abyss.txt abyss.dat
.PHONY : clean
clean :
rm -f *.dat
这是在python中运行类似内容的最佳过程,还是有更好的方法?
这是在python中运行类似内容的最佳过程,还是有更好的方法?
“最佳”肯定在情人眼中。但是,如果问题中提出的基于make
的方法可以令人满意地表示问题,则这是一种[好]的方式。 make
实现非常广泛,其行为已广为人知,并且通常非常适合出现的问题。[还有其他与make
竞争的构建工具,其中一些是用Python编写的,毫无疑问,还有一些更深奥的软件框架可以应用于该任务。但是,如果您想专注于完成工作而不是构建完成工作的框架,那么我看不出有什么理由可以超越已经拥有的基于make
的解决方案。