如何通过python调用/运行软件?

时间:2011-08-17 15:49:14

标签: python call file-io

我正在尝试创建一个简单的脚本来逐个运行不同的任务(一个接一个),但我不知道如何通过python脚本运行该程序!我知道它应该很简单!但我找不到任何地方。我的例子就是这样:

samtools merge filename.bam file1.sorted.bam file2.sorted.bam file3.sorted.bam file4.sorted.bam

samtools index filename.bam 
samtools idxstats filename.bam > filename.txt 
samtools pileup -vcf path/filename.fa filename_sorted.bam

我希望python运行第一个命令,然后完成后转到下一个命令!它等待直到它完成是很重要的!

2 个答案:

答案 0 :(得分:3)

使用subprocess module。页面底部有很多例子。

答案 1 :(得分:3)

from subprocess import call # call runs an external program and waits for it to quit

for command in ("samtools merge filename.bam file1.sorted.bam file2.sorted.bam file3.sorted.bam file4.sorted.bam", 
                "samtools index filename.bam", 
                "samtools idxstats filename.bam > filename.txt", 
                "samtools pileup -vcf path/filename.fa filename_sorted.bam"):
    # shell=True is so you can handle redirects like in the 3rd command
    call(command, shell=True)