2011-11-02 111 views
1

我试图为两个输入文件运行一系列命令,但是如果已经完成,我想避免做同样的事情。为了使它更清楚,这是我的命令:如何在Python中创建一个文件存在的循环?

from subprocess import call 
import os.path 

pathway = raw_input("Please give the pathway of your Genome Folder (.fa files): ") 
genome= raw_input("Please type your genome name (e.g. chick_build2.1):") 
#Building a genome (.stidx for stampy) 
cmd = "python /space/tierzucht/mgholami/stampy-1.0.13/stampy.py -G %s %s/*.fa" %(genome, pathway) 
#Building a genome (.fa for BWA) 
cmd = "cat %s/*.fa > %s.fa" %(pathway, genome) 
#Building an index (for BWA) 
cmd = "bwa index %s.fa " %(genome) 
call(cmd, shell=True) 

和我想要做的就是添加一个如果每个前loop命令,如果该文件已经存在不运行此命令。我试过,但它不工作:

if os.path.isfile("%s.stidx") %genome == False: 
    cmd = "python /space/tierzucht/mgholami/stampy-1.0.13/stampy.py -G %s %s/*.fa" %(genome, pathway) 

我想要做的是检查,如果所选择的文件名的stidx格式已经存在!我想用fa格式和其他几种。

+0

你为什么不使用make? –

+0

'if loop' - 哈哈;) – naeg

回答

1

尝试:

if not os.path.isfile("%s.stidx"%genome): 
    cmd = "python /space/tierzucht/mgholami/stampy-1.0.13/stampy.py -G %s %s/*.fa" %(genome, pathway) 

在你的原代码,在paretheses被放错了地方(在%渐渐解释为求余运算符,因此解释并没有抱怨语法错误)。

相关问题