Как я могу вызвать / запустить программное обеспечение на python? - PullRequest
1 голос
/ 17 августа 2011

Я пытаюсь сделать простой скрипт для запуска разных задач одну за другой (одна за другой), но я не знаю, как я могу запустить программу скриптом 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

Я хочу, чтобы питон выполнил первую команду и после ее завершения перешел к следующей!важно, чтобы он подождал, пока не закончится!

Ответы [ 2 ]

3 голосов
/ 17 августа 2011
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) 
3 голосов
/ 17 августа 2011

Используйте модуль подпроцесса . Внизу страницы много примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...