2017-10-31 14 views
-1

私の最初の質問は、Stackoverflowと完全にPythonの初心者です。複数のTry/Exceptを検証コンフィギュレーションファイル用

私はPythonを使って小規模なバックアッププログラムを作成したいと思っていますが、主要な部分は完了しましたが、今ではそれを少し "ポータブル"にして、設定ファイルを使用したいと思います。 。

私のクラス "getBackupOptions"は、 "GetBackupOptions.BackupOptions"を呼び出すときに最終的に完全に "BackupOption" dictを取得できるように、 "GlobalOptions"と "BackupOption"で強化する必要がある検証辞書を返します。

私のコードを簡略化する方法は、パスが再帰的に検索されるべきかどうかをチェックする唯一の機能なので、この例は簡単です。 各(可能な)エラーについて、私は新しい "TryExcept"ブロックを書き込む必要があります - それを簡略化することはできますか?

設定ファイル/アレイを検証する別の方法がありますか?

class getBackupOptions: 
    def __init__(self,BackupOption,GlobalOptions): 
     self.BackupOption = BackupOption 
     self.GlobalOptions = GlobalOptions 

     self.getRecusive() 


def getRecusive(self): 
    try: 
     if self.BackupOption['recursive'] != None: 
      pass 
    else: 
      raise KeyError 
    except KeyError: 
     try: 
      if self.GlobalOptions['recursive'] != None: 
       self.BackupOption['recursive'] = self.GlobalOptions['recursive'] 
      else: 
       raise KeyError 
     except KeyError: 
      print('Recusive in: ' + str(self.BackupOption) + ' and Global is not set!') 
      exit() 

実際に私が唯一KeyError例外をキャッチしますが、どのような場合は、そのキーがあるが、「true」または「false」以外の何かがありますか?

ありがとうございました。

答えて

0

そのためKeyErrorが直面したことはありません、この

class getBackupOptions: 
    def __init__(self,BackupOption,GlobalOptions): 
     self.BackupOption = BackupOption 
     self.GlobalOptions = GlobalOptions 

     self.getRecusive() 

    def getRecusive(self): 
     if self.BackupOption.get('recursive') == 'True' and self.GlobalOptions.get('recursive') == 'True': 
      self.BackupOption['recursive'] = self.GlobalOptions['recursive'] 
     else: 
      print('Recusive in: ' + str(self.BackupOption) + ' and Global is not set!') 
      exit() 
  • ここget方法が使用されてみてください。
  • True以外のテキストがフィールドに入力された場合は、Falseとみなされます。
関連する問題