2011-11-02 124 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被放錯了地方(在%漸漸解釋爲求餘運算符,因此解釋並沒有抱怨語法錯誤)。

相關問題