¿Qué es mejor para crear un archivo de configuración para los programas de Python, el módulo integrado (ConfigParser) o el proyecto independiente (ConfigObj)?¿Qué es mejor, ConfigObj o ConfigParser?
Respuesta
Hasta ahora, encontré ConfigParser suficiente en cualquier momento que lo usé. Además, es una batería incluida y no una biblioteca de terceros.
Aunque tengo que admitirlo, los ejemplos de código en la documentación de ConfigObj hacen que ConfigParser parezca realmente sutil en comparación. Para una secuencia de comandos que manipula pesadamente archivos .ini, lo preferiría.
Estoy de acuerdo. Descubrí que las características que me faltaban en ConfigParser están en ArgParse, que también es una batería incluida desde 2.7. Donde tengo Python 2.7 disponible, he migrado a ArgParse. – Hernan
Recientemente cambié de configparser a configobj, y estoy encantado de haberlo hecho.
Para mí, la gran diferencia es configobj's validator. Me permite muy fácil/sucintamente (1) definir el tipo y los valores aceptables para cada entrada, y (2) establecer los valores predeterminados.
Esas dos características me ahorran una gran cantidad de código y evitan que muchas cosas salgan mal. Además, no hay gastos indirectos adicionales para usar configobj en términos de la complejidad de mi código, y la biblioteca es bastante pequeña.
Para el registro, encontré la mejor introducción para configobj [este tutorial] (http://www.voidspace.org.uk/python/articles/configobj.shtml) - está un poco anticuado, pero explica las operaciones básicas y la filosofía mejor que los documentos, imho. –
Dependiendo de su versión de Python, puede ser polémico si esto responde a su pregunta, pero después de una breve mirada a ConfigParser y ConfigObj, me conformé con el configparser, la versión Python 3 de ConfigParser. There’s also a backported version on PyPI.
ConfigParser me pareció engorroso, tal vez incluso, me atrevo a decirlo, antipático, y con ConfigObj encontré un problema esotérico con las listas (preferiría poder alinearlos verticalmente, ya que los míos son realmente largos) , y no ayudó que la última versión fuera publicada hace más de dos años. La API de configparser, sin embargo, parecía tan amplia como la de ConfigObj (aunque no tan rica en funciones), y cuando nos movemos a Python 3, probablemente pueda cambiar fácilmente a la versión incorporada.
Por cierto, funciona muy bien hasta el momento.
- 1. ConfigObj/ConfigParser vs. usar YAML para el archivo de configuración Python
- 2. Python, ConfigParser: ¿Qué es 'interpolación mágica'
- 3. ¿Qué es mejor BOOST_MPL_ASSERT o BOOST_STATIC_ASSERT?
- 4. ¿Qué es mejor "int 0x80" o "syscall"?
- 5. ¿Qué es mejor, isset o no?
- 6. ¿Qué es mejor, ETL o ELT?
- 7. ¿Qué es mejor usar: Convert.ToX o X.Parse (...)?
- 8. ¿Qué es mejor? OpenCyc o ConceptNet?
- 9. ¿Qué es mejor XPath o Linq2Xml
- 10. ¿Qué es mejor ?: (reducir + ...) o (aplicar + ...)?
- 11. ¿Qué es mejor, o ExpectedException @test (esperado =
- 12. ¿Qué es mejor, Nagios o Sensu?
- 13. ¿Qué es mejor, PyInstaller o cx_Freeze?
- 14. ¿Qué es mejor, curl o wget?
- 15. ¿Por qué ** kwargs no interpola con Python ConfigObj?
- 16. ¿Qué es mejor y por qué? RaphaelJS o HTML5 Canvas?
- 17. ConfigParser con elementos Unicode
- 18. ¿Qué caso es mejor?
- 19. ¿Qué es mejor?
- 20. ¿Nuevas líneas con ConfigParser?
- 21. jqGrid o dataTable, ¿qué mejor?
- 22. ¿Conservar caso en ConfigParser?
- 23. ¿Qué es mejor ... unión externa izquierda o unión externa derecha?
- 24. ¿Qué os es mejor para el desarrollo: Debian o Ubuntu?
- 25. ¿Qué es mejor: claves extranjeras o herencia de modelo?
- 26. ¿Qué es mejor? INotifyPropertyChanged o tener eventos separados * ¿Cambiados?
- 27. ¿Qué es mejor? if ... simple o múltiple simple si
- 28. ¿Qué es mejor usar array o List <>?
- 29. ¿Qué es mejor usar varios AsyncTask o HandlerThread (Thread Pipeline)?
- 30. Diseño de widgets. ¿Qué es mejor: IFrames o Javascript?
Además, ¿es bueno el YAML? – Apocryphon
"Mejor" depende del contexto. Simple, complicado? ¿Qué tipo de configuración? – detly
Apocryphon: le sugiero que edite la pregunta a algo así como: "¿Cuáles son las desventajas y las ventajas de ConfigParser, ConfigObj, YAML?" –