files - Python ConfigParser: Comprobando la existencia de la opción
configuration files python (1)
La elección entre try / except y if-condition es una línea difusa.
- Si espera que la excepción sea bastante rara, use try / except ya que modela más de cerca el pensamiento
- Por el contrario, las excepciones "esperadas", como la falta de un elemento de configuración, son parte del flujo normal de control y el código debe reflejar eso.
No hay una opción claramente superior, pero parece que tienes un caso de (2), así que optaré por / / entonces. Esto ignora completamente los aspectos de más fácil pedir perdón que el permiso y las eficiencias relativas de las estructuras.
Estoy usando el ConfigParser de Python para crear un archivo de configuración. Quiero verificar si una sección tiene una opción particular definida y, si la tiene, obtener el valor. Si la opción no está definida, solo quiero continuar sin ningún comportamiento especial. Parece que hay dos maneras de hacer esto.
if config.has_option(''Options'', ''myoption''):
OPTION = config.get(''Options'', ''myoption'')
O:
try:
OPTION = config.get(''Options'', ''myoption'')
except ConfigParser.NoOptionError:
pass
¿Se prefiere un método sobre el otro? El if
implica menos líneas, pero ocasionalmente he leído que try
/ except
se considera más pythonic en muchos casos.