2017-01-31 14 views
-1

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

for myFile in myFiles: 
     file = open(filename, 'rt') 
     try: 
      if CLIENT == "C1": 
       head = rows[:7] 
       tail = rows[7:] 
       for row in rows: 
        if "".join(row)!= "": 
         if not u_pass: 
          header = [ row.strip().replace(" ", "_") for row in row[3:] ] 
          u_pass = True 
         else: 
          self.usecases(row, data, index) 

      elif CLIENT == 'C2': 
       reader = csv.reader(file) 
       firstline = next(reader) 
       secondline = next(reader) 
      else: 
       for row in rows: 
        if "".join(row)!= "": 
         if not u_pass: 
          header = [ row.strip().replace(" ", "_") for row in row[3:] ] 
          u_pass = True 
          # Recuperation des donnees 
         else: 
          self.usecases(row, data, index) 

ниже код повторяется дважды в предыдущем коде, то есть есть некоторые общие инструкции между этими условиями "

for row in rows: 

      if "".join(row)!= "": 
       if not u_pass: 
        header = [ row.strip().replace(" ", "_") for row in row[3:] ] 
        u_pass = True 
       else: 
        self.usecases(row, data, index) 
+1

[codereview.se] - Но читать их руководящие принципы, прежде чем отправлять – Sayse

+0

уже сделал, и мне сказали, что это не правое племя> - < – JavaQueen

+2

[Те комментарии] (http://codereview.stackexchange.com/questions/154061/duplicated-instractions-in-both-canditions#comment291460_154061) не сказал, что вопрос там не подходит. Просто вам нужно исправить ошибки перед публикацией. – Sayse

ответ

1

Ниже следует сделать трюк:

for myFile in myFiles: 
    file = open(filename, 'rt') 
    try: 
     if CLIENT == "C2": 
      reader = csv.reader(file) 
      firstline = next(reader) 
      secondline = next(reader) 
     else: 
      if CLIENT == "C1": 
       head = rows[:7] 
       tail = rows[7:] 
      for row in rows: 
       if "".join(row)!= "": 
        if not u_pass: 
         header = [ row.strip().replace(" ", "_") for row in row[3:] ] 
         u_pass = True 
        else: 
         self.usecases(row, data, index) 
+0

awesome, спасибо большое – JavaQueen

+1

рад, что я могу помочь – Derorrist