生成空输出文件的gnu并行管道

2024-05-14 21:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力尝试运行gnu并行。我有一个shell脚本,用不同的输入参数调用python程序几千次:

python /path/to/program/run.py A_02_01 input.fasta > /path/to/output/out.txt
python /path/to/program/run.py A_02_02 input.fasta > /path/to/output/out.txt

我试着使用gnu parallel,就像这样:

cat iedb_classi_call.sh  | parallel  --recstart 'python' --recend '\n' --pipe   bash

但是我所有的输出文件都是空的。我在努力想原因。我没有从gnu parallel得到错误。你知道吗

在添加recstart和recend选项之前,我得到了一些python调用的非空输出文件,但是其他程序调用没有执行,并且出现了如下错误:

run.py: error: incorrect number of arguments
bash: line 422: 01_ input.fasta: command not found
Usage: run.py allele fasta_file

这让我觉得parallel是以未正确分隔的块进行读取,我在parallel中添加了--recstart/--recend参数

我使用的是gnu并行版本20180722


Tags: topathrunpygnu程序inputoutput
1条回答
网友
1楼 · 发布于 2024-05-14 21:23:30

(这应该是一个注释,因为它不能回答实际问题,但格式化代码的效果不太好)。你知道吗

如果线条像:

python /path/to/program/run.py A_02_01 input.fasta > /path/to/output/out.txt
python /path/to/program/run.py A_02_02 input.fasta > /path/to/output/out.txt

然后你可以做:

cat file-with-A_names |
  parallel  results /path/{}.out python /path/to/program/run.py {} input.fasta >/dev/null

输出将存储在/path/A....out。你知道吗

相关问题 更多 >

    热门问题