【问题标题】:How can I call/run a software by python?如何通过 python 调用/运行软件?
【发布时间】:2011-08-17 15:49:13
【问题描述】:

我正在尝试制作一个简单的脚本来逐个(一个接一个)运行不同的任务,但我不知道如何通过 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 运行第一个命令,并在完成后转到下一个命令!重要的是要等到完成!

【问题讨论】:

    标签: python call file-io


    【解决方案1】:
    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) 
    

    【讨论】:

    • 非常感谢,我已经厌倦了子进程,但我将引用 (") 仅用于 samtools 命令而不是文件名!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 2020-09-16
      • 2010-12-18
      • 1970-01-01
      相关资源
      最近更新 更多