加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 批处理:GNU-make,Snakemake还是什么?

发布时间:2020-12-20 11:57:16 所属栏目:Python 来源:网络整理
导读:我需要通过将它们传递给matlab或 python脚本来处理目录中的一组文件. 对于目录中的每个输入文件FileName.IN,我需要获取输出文件FileName.OUT. 如果解决方案是Python或bash脚本并不重要. 为了实现我的目标,我尝试了GNU Make(或Python Snakemake),但是我有点卡
我需要通过将它们传递给matlab或 python脚本来处理目录中的一组文件.

对于目录中的每个输入文件FileName.IN,我需要获取输出文件FileName.OUT.

如果解决方案是Python或bash脚本并不重要.

为了实现我的目标,我尝试了GNU Make(或Python Snakemake),但是我有点卡在它上面.
看起来我可以说GNU Make要做:
“嘿,对于每个输出(目标)文件FileName.out搜索相应的FileName.IN(先决条件)”.

然而,如前所述,我想要做的恰恰相反.

> make(或snakemake)是正确的选择吗?
>你还有什么建议?

我的makefile代码看起来像这样,但它不能完成这项工作(我是GNU make的新手):

in_files = *.IN
out_files = *.out
$(out_files) : $(in_files)
    matlab -nosplash -nodesktop -r "a_matlab_function('$<','$@')"

解决方法

我对Snakemake一无所知,但在GNU Make中你可以转换in_files来给出out_files:

in_files = $(wildcard *.IN)
out_files = $(in_files:.IN=.out)

然后你制作一个取决于所有输出的虚拟目标:

all: $(out_files)
.PHONY: all

最后,从一个输入创建一个输出的规则:

%.out: %.IN
    matlab -nosplash -nodesktop -r "a_matlab_function('$<','$@')"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读