Как сделать цикл существования файла в python? - PullRequest
1 голос
/ 02 ноября 2011

Я пытаюсь запустить серию команд для двух входных файлов, но я хочу избежать того же, если это уже было сделано. Чтобы было понятнее, это мои команды:

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)

и я хочу добавить цикл if перед каждой командой, чтобы, если файл уже существует, не запускать эту команду. Я пробовал это, но это не работает:

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 и некоторых других тоже.

1 Ответ

1 голос
/ 02 ноября 2011

Попробуйте:

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)

В вашем исходном коде паретезы были не на своем месте (% интерпретировался как оператор остатка, поэтому интерпретатор не жаловался на синтаксическую ошибку).

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