我有兴趣从互联网上的某个位置下载年度数据。我有一个GetYearData.py执行此操作的 python 脚本,将年份和输出文件名作为命令行参数。我想一次在几年的数据上运行这个脚本;我想使用 Make,这样如果我更改开始或结束年份,我就不必重新下载所有数据。
我可以用一个非常简单的 Makefile 做一年:
data/YearData_2000.txt : GetYearData.py
python $< --year 2000 --outfile $@
Run Code Online (Sandbox Code Playgroud)
但是,我想这样做一个循环(或类似的构造),以便在 bash 中的序列中的每一年YEARS=($(seq $(SYEAR) 1 $(EYEAR)))- 我传递--year $(Y)给我的脚本并为--outfile?
尝试类似:
SYEAR = 2000
EYEAR = 2017
YEARS := $(shell seq $(SYEAR) 1 $(EYEAR))
all: $(patsubst %,data/YearData_%.txt,$(YEARS))
data/YearData_%.txt : GetYearData.py
python $< --year $* --outfile $@
Run Code Online (Sandbox Code Playgroud)
如果需要SYEAR,您可以EYEAR在 make 命令行上覆盖和。