我有兴趣从互联网上的某个位置下载年度数据。
我有一个python脚本GetYearData.py
执行此操作,将年份和输出文件名作为命令行参数。
我想同时在几年的数据上运行这个脚本;我想使用Make,这样如果我改变开始或结束年份,我就不必重新下载所有数据。
我可以用一个非常简单的Makefile做一年:
data/YearData_2000.txt : GetYearData.py
python $< --year 2000 --outfile $@
但是,我想这样做一个循环(或类似的结构),这样,对于bash中的每一年,我都会说YEARS=($(seq $(SYEAR) 1 $(EYEAR)))
- 我通过{{1我的脚本并生成--year $(Y)
的适当目标?
答案 0 :(得分:3)
尝试类似:
SYEAR = 2000
EYEAR = 2017
YEARS := $(shell seq $(SYEAR) 1 $(EYEAR))
all: $(patsubst %,data/YearData_%.txt,$(YEARS))
data/YearData_%.txt : GetYearData.py
python $< --year $* --outfile $@
如果需要,您可以在make命令行上覆盖SYEAR
和EYEAR
。