gpt4 book ai didi

parallel-processing - 如何使用 gnu-parallel 处理具有两个输入的脚本?

转载 作者:行者123 更新时间:2023-12-04 08:03:26 28 4
gpt4 key购买 nike

我正在尝试使用如下两个输入运行 Python 脚本。我得到了大约 300 个这两个输入,所以我想知道是否有人可以建议如何并行运行它们。

单次运行看起来像:

python stable.py KOG_1.fan KOG_1.fasta > KOG_1.stable

我的并行测试不起作用:

ls *.fan; ls *.fasta | parallel python stable.py {} {} > {.}.stable

但我如何指定它必须与 _1.fan_1.fasta 一起运行;然后是 _2.fan_1.fasta 等等...直到 _300.fan_300.fasta .

最佳答案

这不是真正的 Python 问题,而是关于 GNU parallel 的问题。如果所有文件都以“KOG_”为前缀,您可以尝试这样做:

seq 1 300 | parallel python stable.py KOG_{}.fan KOG_{}.fasta ">" KOG_{.}.stable

重定向 (">") 两边的引号很重要,除非您希望所有输出都在一个文件中。

处理通用前缀:

ls *fan *fasta | parallel ---max-lines=2 python stable.py {1} {2} ">" {1.}.stable

这使用 -max-lines 选项使每个命令占用 2 行。当然这只有在 *.fan*.fasta 文件匹配时才有效,即每个文件必须有相同的数量,并且数字需要匹配,否则你最终会配对不应该配对的文件。如果这是一个问题,您可以想出一个命令,该命令将更可靠地将对馈送到 parallel

关于parallel-processing - 如何使用 gnu-parallel 处理具有两个输入的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35224003/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com