148 votes

Fichier de propriétés en python (similaire à Java Properties)

Étant donné le format suivant ( .properties ou .ini ):

 propertyName1=propertyValue1
propertyName2=propertyValue2
...
propertyNameN=propertyValueN
 

Pour Java , la classe Propriétés offre des fonctionnalités pour analyser / interagir avec le format ci-dessus.

Existe-t-il quelque chose de similaire dans la bibliothèque standard de python (2.x)?

Si non, quelles autres alternatives ai-je?

84voto

VenomFangs Points 2222

J'ai pu obtenir que cela fonctionne avec ConfigParser, personne n'a montré des exemples sur la façon de le faire, donc voici un simple python lecteur d'un fichier de propriété et à l'exemple du fichier de propriétés. Notez que l'extension est encore en .properties, mais j'ai dû ajouter un en-tête de section similaire à ce que vous voyez dans .les fichiers ini... un peu de métissage, mais il fonctionne.

Le fichier python: PythonPropertyReader.py

#!/usr/bin/python    
import ConfigParser
config = ConfigParser.RawConfigParser()
config.read('ConfigFile.properties')

print config.get('DatabaseSection', 'database.dbname');

Le fichier de propriétés: ConfigFile.properties

[DatabaseSection]
database.dbname=unitTest
database.user=root
database.password=

Pour plus de fonctionnalités, lire: https://docs.python.org/2/library/configparser.html

73voto

pygabriel Points 3678

Pour les fichiers .ini, le module ConfigParser fournit un format compatible avec les fichiers .ini.

Quoi qu'il en soit, il n'y a rien de disponible pour analyser des fichiers .properties complets, lorsque je dois le faire, j'utilise simplement jython (je parle de script).

65voto

Travis Bear Points 1408

Un fichier de propriétés java est souvent un code python valide. Vous pouvez renommer votre fichier myconfig.properties en myconfig.py. Ensuite, importez votre fichier, comme ceci

 import myconfig
 

et accéder directement aux propriétés

 print myconfig.propertyName1
 

17voto

Matt Good Points 1313

Si vous avez une option de formats de fichier, je vous suggère de les utiliser .ini et Python ConfigParser comme mentionné. Si vous avez besoin de compatibilité avec Java .les propriétés des fichiers, j'ai écrit une bibliothèque pour qu'il appelle jprops. Nous avons été à l'aide de pyjavaproperties, mais après avoir rencontré de nombreuses limitations j'ai fini par mettre en place mon propre. Il possède un support complet pour la .les propriétés de format, y compris la prise en charge unicode et un meilleur support pour les séquences d'échappement. Jprops pouvez également analyser n'importe quel fichier comme objet alors que pyjavaproperties ne fonctionne qu'avec des vrais fichiers sur le disque.

6voto

Manoj Govindan Points 24030

Ce ne sont pas exactement des propriétés, mais Python a une bonne bibliothèque pour analyser les fichiers de configuration. Voir également cette recette: Un remplacement python pour java.util.Properties .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X