You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snakemake规则输入文件数量的优雅获取方法问询

更简洁的Snakemake输入文件数量获取方法

你可以直接利用Snakemake支持在shell脚本中嵌入Python表达式的特性,用len()函数直接获取输入文件列表的长度,替代原来繁琐的shell管道统计方式,代码更简洁且避免了文件名含空格等潜在问题。

核心实现

直接在shell命令中通过{len(input.files)}获取输入组files的文件数量:

rule x:
    input:
        files = ["file1", "file2"],
    output:
        "output.txt"
    shell:
        """
        N={len(input.files)}; # 直接返回输入文件数量,无需shell处理
        touch {output}
        """

扩展场景

如果需要统计所有输入文件的总数(而非特定输入组),可以用len(input):

rule x:
    input:
        "file1",
        files = ["file2", "file3"],
    output:
        "output.txt"
    shell:
        """
        TOTAL_FILES={len(input)}; # 这里会返回3(file1 + file2 + file3)
        touch {output}
        """

这种方法不仅代码更简洁,还能避免原方法中因文件名含空格导致的统计错误,同时性能更优,无需启动额外的shell进程处理文本。

内容的提问来源于stack exchange,提问作者Quentin BLAMPEY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 14:23:18