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

标签 python bash batch-processing gnu-make 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('$<','$@')"

关于python - 批处理 : GNU-make, Snakemake 还是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41698983/

相关文章:

Python 字典列表并根据特定情况创建另一个字典

python - python中的return和break有什么区别?

python - 当多边形变得太小时,带有 polycollection 的图消失

linux - 没有夏令时 (DST) 的给定时区的 GMT/UTC 偏移量(小时/分钟)

facebook - 有没有办法确定批量响应中的响应顺序?

python - 使用python从ftp服务器下载文件但下载后文件未打开

bash - 如何将命令的输出视为文件?

bash 文件一个接一个地运行 imacros

Cassandra:带条件的批处理不能跨越多个表

google-api - Google Calendar API 在单个批处理请求中返回 403 Rate Limit Exceeded