在参数中使用变量运行Python脚本

时间:2018-06-13 15:51:35

标签: python linux python-2.7 shell

我有一个运行如下的python命令:

python script.py -file 1000G_EUR_Phase3_plink/1000G.NUMBER --out GTEx_Cortex.chrNUMBER

我想将NUMBER变量替换为1:20的数字。因此,如果我将NUMBER替换为1,它将如下所示:

python script.py -file 1000G_EUR_Phase3_plink/1000G.1 --out GTEx_Cortex.chr1

这是第二次迭代(如果我用2替换):

python script.py -file 1000G_EUR_Phase3_plink/1000G.2 --out GTEx_Cortex.chr2

但我不想手动改变NUMBER 20次。我希望自动化整个事情。

如何在命令提示符下执行此操作?这应该在VIM中完成还是在python中有另一种方式?

谢谢!

2 个答案:

答案 0 :(得分:2)

for i in `seq 1 20`;do python script.py -file 1000G_EUR_Phase3_plink/1000G.${i} --annot GTEx_Cortex_chr1.annot.gz --out GTEx_Cortex.chr${i};done

答案 1 :(得分:2)

如果你经常这样做,你也可以写一个bash脚本。

创建一个循环执行命令的文件run_stuff。它可以类似于:

#!/bin/bash
n=$1
i=1
while (( i <= n )); do
    python prog${i}.py
    (( i = i + 1 ))
done

上述脚本运行prog1.py,然后运行prog2.py,依此类推。对于您的代码,只需将第5行替换为您想要的类似行。

然后在终端你会这样做:

chmod u+x run_stuff
./run_stuff 20

chmod命令只是更改了文件的权限,因此您可以执行它。